`
leeo1124
  • 浏览: 23816 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2 Preparable与ModelDriven 接口

阅读更多

一、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接口结合使用:

 

 

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;
}

 

 

分享到:
评论

相关推荐

    Java详解ModelDriven和Preparable拦截器.doc

    Java详解ModelDriven和Preparable拦截器.doc

    [尚硅谷]_封捷_ModelDriven和Preparable拦截器.pdf

    [尚硅谷]_封捷_ModelDriven和Preparable拦截器.pdf

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    深入浅出Struts2

    Struts 2 是Java Web 应用首选的MVC 框架。本书对Struts 2 的工作机理进行了透彻的阐述。书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序...

    struts+spring+hibernate整合

    Spring4.0、Struts2.3.15、Hibernate4.2.4、jQuery1.9.1涉及到了诸多开发时的细节:ModelDriven、Preparable 拦截器、编写自定义的类型转换器、Struts2 处理 Ajax、OpenSessionInViewFilter、迫切左外连接、Spring ...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上...

    Javaweb技术文档

    封捷_ModelDriven和Preparable拦截器 张晓飞_Tomcat的设计模式分析 张晓飞_Tomcat系统架构分析 张晓飞_UML模型图 张晓飞_WEB书城. 张晓飞_正则表达式学习手册 HTTP协议简介_封捷 JNDI原理_张晓飞 Servlet_封捷 Web...

    MySQL prepare语句的SQL语法

    MySQL prepare语法: PREPARE statement_name FROM preparable_SQL_statement; /*定义*/ EXECUTE statement_name [USING @var_name [, @var_name] …]; /*执行预处理语句*/ {DEALLOCATE | DROP} PREPARE statement_...

    MySQL中预处理语句prepare、execute与deallocate的使用教程

    PREPARE stmt_name FROM preparable_stmt EXECUTE stmt_name [USING @var_name [, @var_name] ...] - {DEALLOCATE | DROP} PREPARE stmt_name 举个栗子: mysql> PREPARE pr1 FROM 'SELECT ?+?'; Query OK, 0 r

Global site tag (gtag.js) - Google Analytics