如何获得参数
1、strutsMVC
请求 --> Filter(C)--> Action(M)--> Result(V)--> 响应
2、Action生命周期
2.1、每次请求到来时,都会创建一个新的Action实例
2.2、Action是线程安全的.可以使用成员变量接收参数
3、属性驱动获得参数
jsp页面:
<form action="${pageContext.request.contextPath}/Demo1Action"> 用户名:<input type="text" name="name" /><br> 年龄:<input type="text" name="age" /><br> 生日:<input type="text" name="birthday" /><br> <input type="submit" value="提交" /> </form>
java代码:
//每次请求Action时都会创建新的Action实例对象 public class Demo1Action extends ActionSupport { public Demo8Action() { super(); System.out.println("demo8Action被创建了!"); } //准备与参数键名称相同的属性 private String name; //自动类型转换 只能转换8大基本数据类型以及对应包装类 private Integer age; //支持特定类型字符串转换为Date ,例如 yyyy-MM-dd private Date birthday; public String execute() throws Exception { System.out.println("name参数值:"+name+",age参数值:"+age+",生日:"+birthday); return SUCCESS; } 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; } }
4、对象驱动
jsp页面:
<form action="${pageContext.request.contextPath}/Demo2Action"> 用户名:<input type="text" name="user.name" /><br> 年龄:<input type="text" name="user.age" /><br> 生日:<input type="text" name="user.birthday" /><br> <input type="submit" value="提交" /> </form>
java代码:
public class Demo2Action extends ActionSupport { //准备user对象 private User user; public String execute() throws Exception { System.out.println(user); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
5、模型驱动
jsp页面:
<form action="${pageContext.request.contextPath}/Demo3Action"> 用户名:<input type="text" name="user.name" /><br> 年龄:<input type="text" name="user.age" /><br> 生日:<input type="text" name="user.birthday" /><br> <input type="submit" value="提交" /> </form>
java代码:
public class Demo3Action extends ActionSupport implements ModelDriven<User> { //准备user 成员变量 private User user =new User(); public String execute() throws Exception { System.out.println(user); return SUCCESS; } @Override public User getModel() { return user; } }
集合类型参数封装
1、List
jsp页面:
<form action="${pageContext.request.contextPath}/Demo11Action" method="post" > list:<input type="text" name="list" /><br> list:<input type="text" name="list[2]" /><br> <input type="submit" value="提交" /> </form>
2、Map
jsp页面:
<form action="${pageContext.request.contextPath}/Demo11Action" method="post" > map:<input type="text" name="map['haha']" /><br> <input type="submit" value="提交" /> </form>
java代码:
//struts2 封装集合类型参数 public class Demo11Action extends ActionSupport { //list private List<String> list; //Map private Map<String,String> map; public String execute() throws Exception { System.out.println("list:"+list);//list System.out.println("map:"+map);//map return SUCCESS; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public Map<String, String> getMap() { return map; } public void setMap(Map<String, String> map) { this.map = map; } }