开门见山
直接上代码
Struts 2 中的数据填充有3中方式:
1、字段填充:
public class TestActionSupport extends ActionSupport {
此处若为Private motifi
/*
private String userId;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
*/
public String userId;
@Override
public String execute() throws Exception {
System.out.println(userId);
return super.execute();
}
}
JSP页面
<!--JSP页面写法--> <form action="/struts2-class/user/testActionSupport"> userId:<input type="text" name="userId"/><br/> <input type="submit" /> </form>
2、域对象(
推荐使用,也是最长使用的
UserBean很简单 ,此处略去,但有一点不得不说,在写好UserBean的时候最好从写一下
public int hashCode() 方法。
具体为什么还是没有搞懂,但应该要用到sort
)
public class TestActionSupport extends ActionSupport {
//此处user为一UserBean
public User user = new User();
@Override
public String execute() throws Exception {
System.out.println(user);
return super.execute();
}
}
<!--JSP 页面写法-->
<form action="/struts2-class/user/testActionSupport">
userId:<input type="text" name="user.userId"/><br/>
name:<input type="text" name="user.name" /><br/>
<input type="submit" />
</form>
3、模型驱动 implements ModelDriven(
优先被赋值:
当字段填充和模型驱动同时出现的时候模型驱动优先被执行。
)
//最好玩的就是这个ModelDriven ,被叫做模型驱动,他先需要被实现,最后执行一个
//getModel()的方法,返回这个UserBean的引用。并且一个Action只能对应一个ModelDriven
//神奇之处发生了,在JSP页面不需要写对象的引用了,直接写属性名就可以产生映射。
//原来不是很清楚,但能确定的是return的这个对象一定是到前台JSP页面去收集过一趟值//去了
public class TestActionSupport extends ActionSupport implements ModelDriven {
//此处user为一UserBean
public User user = new User();
//public String userId;
@Override
public String execute() throws Exception {
//System.out.println(userId);
System.out.println(user);
return super.execute();
}
//实现域模型 ModelDriven 要重写该方法
@Override
public Object getModel() {
// TODO Auto-generated method stub
//return 的值 传给了页面
return user;
}
}
<!--JSP页面-->
<form action="/struts2-class/user/testActionSupport">
userId:<input type="text" name="userId"/><br/>
name:<input type="text" name="name" /><br/>
age:<input type="text" name="age" /><br/>
<input type="submit" />