Struts2 Action类的创建以及参数传递以及接收
一、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需要存值。
作者:Hackerman
出处:http://www.cnblogs.com/Hackerman/
出处:http://www.cnblogs.com/Hackerman/
本文版权归作者和博客园共有,欢迎转载。但必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。