一、Struts中Action得创建方式

1,直接创建一个简单的Action类

添加Struts.xml,配置转发方法返回转发的页面。

2,实现一个Action类

Strust.xml配置对应的Url转发映射。

3,继承一个ActionSupport类

struts.xml配置文件的内容如下:

二、Struts中Action获取Servlet中的API,并通过servlet的域对象进行存储值操作

1,通过ActionContext上下文对象来获取request域,session域,application域

struts.xml配置文件配置内容:

转发页面内容:

Action获取Servlet中的API,并通过servlet的域对象进行存储值操作

2,通过servletActionContext上下文对象来获取request域,session域,application域

strust.xml配置文件

转发页面

3,Action类通过实现ServletRequestAware, ServletContextAware上下文对象来获取request域,session域,application域

Struts.xml 配置文件如下:

jsp转发配置页面

三、Struts中Action中获取页面传递过来的参数的三种方式

1,通过Action类的属性来获取相应的参数值

package com.java.test.param.Action;

import java.util.Date;

public class ParamAction {
private String name;
private Integer age;
private Date birthday;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}

public String test() {
System.out.println("name:"+name);
System.out.println("age:"+age);
System.out.println("birthday:"+birthday);
return "test";
}

}

struts.xml配置页面

form.jsp

welcome.jsp

2,通过Action类的对象属性来获取相应的参数值

#user.java
package com.java.test.param.Action;

import java.util.Date;

public class User {

private String name;
private Integer age;
private Date birthday;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}

}

#Param1Action .java
package com.java.test.param.Action;

public class Param1Action {
private User user;

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public String test() {
return "test";
}

}

strust.xml配置文件

form1.jsp

welcome1.jsp

3,通过实现ModelDriven类的来获取相应的参数值

#Param3.java
package com.java.test.param.Action;

import com.opensymphony.xwork2.ModelDriven;

public class Param3 implements ModelDriven{
private User user = new User();

@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}

public String test() {
return "test";
}

}

struts.xml

form2.jsp

welcome2.jsp

四、Struts中如何传递list,map参数

#Param4Action .java
package com.java.test.param.Action;

import java.util.List;
import java.util.Map;

public class Param4Action {
private List list;
private Map<String,String> map;

public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}

public String test() {
return "test";
}

}

form3.jsp

welcome3.jsp

总结:1,创建Action有三种方式,每一种都有对应的好处,建议使用第二种或者第三种,这种方式能够继承或者实现父类,从而可以复用父类的一些东西。

2,获取servlet Api,建议使用第二种方式,和servlet的方式类似。但struts中不建议这样来获取参数或设置对象域。

3, Action类中接收参数的三种方式,第一种的话,很零散,操作数据库还得进行封装类,第二种方式,可以直接封装好类,这种方式可以,第三种,这种方式也可以,就是               每次只能实现一个bean类,从而只能获取一个bean。多个bean的话不太好解决。

最后一个就是传递list参数和map参数,list就是页面上得有多个对应的list,map必须指定对应的key,不然不知道是哪一个key需要存值。

   

Struts2 Action类的创建以及参数传递以及接收的更多相关文章

  1. JAVA框架Struts2 Action类

    一.Action书写方式: 接口地址:https://struts.apache.org/maven/struts2-core/apidocs/index.html Action类就是一个POJO类. ...

  2. Struts2框架(3)---Action类的3种书写方式

    Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 (2)实现Acti ...

  3. 在Action类中获得HttpServletResponse对象的四种方法

    在struts1.xAction类的execute方法中,有四个参数,其中两个就是response和request.而在Struts2中,并没有任何参数,因此,就不能简单地从execute方法获得Ht ...

  4. struts2笔记02-action和Action类

    1.action      action表示一个struts2的请求! 2.Action类 能够处理struts2请求的类. (1)属性的名字需要与JavaBeans属性保持一致. 属性的类型可以是任 ...

  5. Struts2中的Action类(解耦方式,耦合方式)

    一.解耦方式 特点:对web资源进行了封装,便于单元测试. 实现:ActionContext和接口方式 1.ActionContext 特点:Action执行的上下文对象.保存了执行Action所需要 ...

  6. struts2捕获action类异常

    首先是STRUTS.XML的配置.重点在于配置文件: <!-- struts2捕获action类异常 -->         <global-results> <resu ...

  7. Struts2 之 Action 类访问 WEB 资源

    接着上次博客的内容我继续分享我所学到的知识,和自己在学习过程中所遇到问题以及解决方案.当然,如果读者发现任何问题均可以在下方评论告知我,先谢! 在 Action 中访问 WEB 资源 web 资源 所 ...

  8. Struts2框架(4)---Action类访问servlet

    Action类访问servlet Action类有三种方式servlet: (1)间接的方式访问Servlet API  ---使用ActionContext对象 (2)  实现接口,访问Action ...

  9. Struts2框架之Action类的访问

    1. 通过<action>标签中的method属性,访问到Action中的具体的方法. * 传统的配置方式,配置更清晰更好理解!但是扩展需要修改配置文件等! * 具体的实例如下: * 页面 ...

随机推荐

  1. 【c# 学习笔记】继承

    在c#中,一个类可以继承另外一个已有的类(密封类除外),被继承的类称为基类(或父类),继承的类称为派生类(或子类),子类将获得基类 除构造函数和析构函数以外的所有成员.此外,静态类是密封的,也不能被继 ...

  2. 《C语言程序设计教程》学习笔记

    <C语言程序设计教程>--朱鸣华.刘旭麟等 第一章 C语言概述 1.C语言的特点: 1)兼具高级.低级语言的双重能力(C语言允许直接访问物理地址,能够进行位操作,能实现汇编语言的大部分功能 ...

  3. 解决 Ceph v14.2.1 RGW使能压缩时遇到不生效的问

    根据常规方法部署Ceph(14.2.1 or 14.2.2)集群+rgw后,通过命令“radosgw-admin zone placement modify --rgw-zone=default -- ...

  4. Spring + Atomikos 分布式事务实现方式

    不同的数据库一定要分包建立 引用:http://blog.csdn.net/benluobobo/article/details/49818017 http://blog.csdn.net/yds49 ...

  5. PS错误1

    PS错误1 提示要卸载.不用卸载直接安装即可.还保留了之前的设置. 在安装目录下看看有没有安装PS的exe程序.可能有.

  6. 并发艺术--java并发机制的底层实现原理

    前言 Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令. 一 ...

  7. JAVA支持字符编码读取文件

    文件操作,在java中很常用,对于存在特定编码的文件,则需要根据字符编码进行读取,要不容易出现乱码 /** * 读取文件 * @param filePath 文件路径 */ public static ...

  8. 顺序表添加与删除元素以及 php实现顺序表实例

    对顺序表的操作,添加与删除元素. 增加元素 如下图所示  对顺序列表 Li [1328,693,2529,254]  添加一个元素 111 ,有三种方式: a)尾部端插入元素,时间复杂度O(1);  ...

  9. 第十六章:网络IPC 套接字

    一.IP地址和端口 套接字接口可以用于计算机间通信.目前计算机间使用套接字通讯需要保证处于同一网段. 为了查看是否处于同一网段,我们可以使用IP地址判断. IP地址是计算机在网络中的唯一标识.IP地址 ...

  10. spring cloud微服务实践六

    本片我们就来认识下spring cloud中的zuul组件. 注:这一个系列的开发环境版本为 java1.8, spring boot2.x, spring cloud Greenwich.SR2, ...