模型驱动拦截器:
Struts运行时候,会执行默认的拦截器栈,其中有一个拦截器,模型驱动拦截器:
<interceptor name="modelDriven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>
模型驱动与属性驱动的区别
->属性驱动
对于属性驱动,我们需要在Action中定义与表单元素对应的所有的属性,因而在Action中会出现很多的getter和setter方法->模型驱动
对于模型驱动,使用的Action对象需要实现ModelDriven接口并给定所需要的类型.而在Action中我们只需要定义一个封装所有数据信息的javabean->属性和模型驱动的相同点
当我们使用属性驱动和模型驱动的时候,必须将表单的元素中的name属性值与我们定义接收数据信息的变量名对应起来。很明显,模型驱动好像让我们写的东西更少了一些。。。。。。。
使用步骤
- 实现ModelDriver接口
- 实现接口方法: 接口方法返回的就是要封装的对象
- 对象一定要实例化。
jsp页面:
<input type=text name=userName />
<input type=text name=pwd />
action页面:
public class UserAction extends ActionSupport implements ModelDriven<User> {
// 封装请求数据
private User user = new User();
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
// 实现模型驱动接口方法 , getModel方法自动将提交的数据给user属性赋值
@Override
public User getModel() {
return user;
}
public String add() {
/*这里我们可以直接使用user的属性值*/
return "success";
}
}