首页 > 代码库 > struts2笔记(2)

struts2笔记(2)

Struts2 中, HTML 表单将被直接映射到一个 POJO,通过params拦截器,类中定义对应属性,及对应set方法即可。

params拦截器会把请求参数的值赋给栈顶对象对应的各个属性,如果栈顶对象没有对应属性,则往下找下一个对象对应的属性。

如果已经有了一个javabean,表单传过来了bean的属性,就不需要再action中再写一遍bean的每个属性来赋值了,可以直接写一个bean的变量,通过ModelDriven拦截器,如果 Action 类实现了 ModelDriven 接口,该拦截器将把 ModelDriven 接口的 getModel() 方法返回的对象置于栈顶,然后params拦截器就会将表单属性赋给栈顶的空的bean对象了。继承接口后这样写(可以没有setEmployee方法)

  技术分享
1 private Employee employee;
2 @Override
3 public Employee getModel() {
4     employee = new Employee();
5     return employee;
6 }
View Code

 代码里不能直接return new Employee();因为和成员变量employee没关系,所以其他用到employee对象的时候,它是空。

每次求情,只要有ModelDriven的getModel()方法,一般栈顶对象都会是该方法返回的对象!

用class.hashcode()方法,可以看对象是不是同一个。

关于回显:

  从值栈站顶开始查找匹配的属性,若找到,就添加到value属性中,就会自动给赋上。

下图29。18

技术分享

技术分享

技术分享

struts2笔记(2)