Struts2 Preparable与ModelDriven 接口_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Struts2 Preparable与ModelDriven 接口

Struts2 Preparable与ModelDriven 接口

 2014/3/23 16:08:12  leeo1124  程序员俱乐部  我要评论(0)
  • 摘要:一、Preparable接口该接口有一个prepare()方法,实现该接口的action在执行时首先执行该方法,prepare()方法的执行点是在:setXxx()和execute()的执行之前,如创建prepareAdd方法,则在执行add方法前,将先执行prepareAdd方法。二、ModelDriven接口ModelDriven接口的作用是实现模型驱动而不需要在表单中使用如user.username的方式,只需写username即可,必须实现该接口getModel方法
  • 标签:接口 struts

一、Preparable接口

该接口有一个prepare()方法,实现该接口的action在执行时首先执行该方法,prepare()方法的执行点是在:setXxx()和execute()的执行之前,如创建prepareAdd方法,则在执行add方法前,将先执行prepareAdd方法 。

?

二、ModelDriven接口

ModelDriven接口的作用是实现模型驱动而不需要在表单中使用如user.username的方式,只需写username即可,必须实现该接口getModel方法。

?

defaultStack无法接收prepare()需要的数据,需配置paramsPrepareParamsStack拦截器栈。使用prepare拦截器之前,应先调用params拦截器,prepare() 才能接收到表单数据,调用的顺序为:params --> prepare --> modelDriven --> params。

?

Preparable、ModelDriven接口结合使用:

?

?

class="java">private User user;
private Long id;
private UserService userService;
 
public void setId(Long id) {
    this.id = id;
}

public void prepare() throws Exception {
    if(id != null) {
       user = new User();
    } else {
       user = userService.getById(id);
    }
}

public Object getModel() {
    return user;
}

?

?

发表评论
用户名: 匿名