Java EE SSH框架之Struts2 (4)—— Struts2参数获取方式
2018-03-29 18:43
435 查看
一、Action生命周期
1.每次请求Action时,都会创建新的 Action实例对象。这与Servlet不同,Servlet只会创建一个,Servlet是单例模式;2.Action是线程安全的,可以使用成员变量接收参数,而Servlet是线程不安全的。
二、参数获取方式
2.1、属性驱动获取参数
此方式是官方推荐的,现实开发中不用此种方式。Action准备与参数键同名属性。
例:jsp中表单:
<form action="${pageContext.request.contextPath}/DemoAction1">
用户名:<input type="text" name="name" /><br>
年龄:<input type="text" name="sex"/><br>
生日:<input type="text" name="birthday"/><br>
<input type="submit" value="提交">
</form>复习下:${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%>。 也就是取出部署的应用程序名或者是当前的项目名。
DemoAction1.javapackage com.zl.struts.action;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class DemoAction1 extends ActionSupport {
//准备与参数键名称相同的属性
//自动类型转换,只能转换为8大基本数据类型以及对应包装类
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;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("name值:"+name+"age值:"+age+"birthday值"+birthday);
return SUCCESS;
}
}
打印出来的结果不需要类型转化。
2.2、对象驱动获取参数
Action准备与参数键同名属性。xxx.yyy例子:
创建一个User.java类,添加name、age、birthday三个属性及对应的set、get方法的代码略掉,为了测试,添加一个如下的toString()方法:public String toString() {
return "User[name="+name+",age"+age+",birthday" +birthday;
}
jsp中添加表单:<form action="${pageContext.request.contextPath}/DemoAction2">
用户名:<input type="text" name="user.name" /><br>
年龄:<input type="text" name="user.sex"/><br>
生日:<input type="text" name="user.birthday"/><br>
<input type="submit" value="提交">
</form>DemoAction2.java:package com.zl.struts.action;
import com.opensymphony.xwork2.ActionSupport;
public class DemoAction2 extends ActionSupport {
//准备user对象
private User user;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println(user);
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
2.3、模型驱动获取参数
1.实现ModelDriven接口;2.实现getModel方法,该方法要返回需要封装参数的对象。
例:
User类
a390
同上面的2.2中的User类
jsp同2.1中的jsp表单
DemoAction3.java
package com.zl.struts.action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class DemoAction3 extends ActionSupport implements ModelDriven<User>{
//准备与参数键名称相同的属性
//自动类型转换,只能转换为8大基本数据类型以及对应包装类
private User user;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println(user);
return SUCCESS;
}
public User getModel() {
return user;
}
}
三、复杂参数封装
3.1、List集合
提交键:list 或 list[index]例:
前台提交:<input type="text" name="list"/> 表示list中的第一个元素
或: <input type="text" name="list[3]"/> 表示list中的第四个元素,第二、三个没有就是空
后台声明:private List<String> list;
3.2、Map集合:
提交键:map['key']例:
前台提交:<input type="text" name="map['name']"> 需要指定键名,这里指定的键名为name
后台声明:private Map<String,String> map;
相关文章推荐
- struts2---获取参数的三种方式
- struts2 action获取jsp参数的三种方式
- struts2中 Action获取表单参数的几种方式
- Java EE SSH框架之Struts2(3)—— 结果跳转方式和访问ServletAPI方式
- struts2中 Action获取表单参数的几种方式
- struts2中 Action获取表单参数的几种方式
- Struts2获取参数的三种方式
- struts2业务控制类(Action)获取页面请求参数的几种方式
- Struts2获取参数的几种方式
- java表现层框架struts2和SpringMVC获取页面参数的方式
- struts2中 Action获取表单参数的几种方式
- struts2获取请求参数的三种方式及传递给JSP参数的方式
- struts2:JSP页面及Action中获取HTTP参数(parameter)的几种方式
- Struts2 获取参数的操作方式
- struts2中 Action获取表单参数的几种方式
- Struts2中action获取request、response、session的方式
- 【深入Struts2】获取ServletAPI的三种方式
- SSH框架(一) Web开发中获取Spring的ApplicationContext的三种方式
- struts2_day03_12_从值栈获取list集合(两种方式)_13_从值栈获取list集合(第三种方式)
- Struts2获取request的几种方式汇总