`
leeo1124
  • 浏览: 24519 次
  • 性别: 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

    defaultStack是Struts2中的默认拦截器栈,它包含了多个拦截器,例如exception、alias、servletConfig、i18n、prepare、chain、scopedModelDriven、modelDriven等。 六、params拦截器 params拦截器是Struts2中的一个...

    Struts2视频教程

    - **Preparable接口**:通过实现`Preparable`接口,可以在Action执行前进行预处理,例如加载数据库中的数据。 - **类型转换和验证**:Struts2支持自定义类型转换器,可以将用户输入的数据转换为所需的类型;同时还...

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

    在Struts2框架中,为了提高代码的可维护性和可读性,开发人员经常使用到`ModelDriven`和`Preparable`这两种拦截器。本文档旨在通过分析这两种拦截器的原理及其实际应用来帮助开发者更好地理解和掌握它们。 #### 二...

    struts2解析文件

    Struts2与其他框架的集成** - **Spring集成**: Struts2可以方便地与Spring框架集成,实现依赖注入,便于管理Action和业务组件。 - **Hibernate集成**: Struts2可以与ORM框架如Hibernate结合,实现数据库操作。 - *...

    struts2高级.txt

    ### Struts2与Servlet API集成 Struts2框架与Servlet API紧密集成,提供了访问HTTP请求和响应的能力。 #### ActionContext `ActionContext`类提供了一种访问当前请求和会话范围的方法。通过`ActionContext....

    struts2工作流程

    Struts2的`ValueStack`会将请求参数自动绑定到Action的属性上,这被称为“模型驱动”(ModelDriven)。同时,`Preparable`接口的`prepare()`方法可以在此阶段被调用,进行预处理。 5. **拦截器(Interceptor)**:...

    使用struts2实现的文件上传功能

    Action类需要继承自`org.apache.struts2.interceptor.FileUploadInterceptor`支持的接口,例如`Preparable`和`ModelDriven`。然后,定义一个或多个属性,它们将作为上传文件的载体。这些属性需要使用`@ultipartFile`...

    struts2_工作流程

    - **PrepareInterceptor**:如果Action实现了Preparable接口,调用prepare方法。 - **StaticParametersInterceptor**:从配置文件中设置Action参数。 - **ScopeInterceptor**:管理Action的状态存储在session或...

    struts2拦截器详述ppt

    - **Model Driven Interceptor**:如果一个类实现了`ModelDriven`接口,那么将`getModel`方法返回的结果放在ValueStack中。 - **Scoped Model Driven Interceptor**:如果一个Action实现了`ScopedModelDriven`接口,...

    flex+Struts实例

    同时,需要掌握Action类的编写,以及ModelDriven、Preparable等接口的使用。 3. **AMF通信**:在Flex与Struts之间,通常使用Action Message Format (AMF)进行数据交换,它是一种高效的数据传输格式。需要熟悉 ...

    struts2内置拦截器简介

    如果Action实现了`Preparable`接口,则该接口的`prepare()`方法会在Action执行前调用。这可以用来做一些初始化工作,如从数据库中获取数据等。 ##### 2.4 Checkbox 该拦截器主要用于处理表单中checkbox的值。默认...

    struts+spring+hibernate整合

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

    struts1.1api

    Struts 1.1 API 是一个关键的开发者资源,它为使用Apache Struts框架进行Java Web应用程序开发提供了详细的文档和接口定义。Struts是一个开源的MVC(模型-视图-控制器)框架,用于构建可维护性和可扩展性高的企业级...

    ssh框架整合详细文档 含注释 解释等 史上最详细

    另一种方式是让Spring创建Action并注入到Struts2,Action类需要实现Spring的`ModelDriven`或`Preparable`接口。 SSH框架的整合是一个系统性的工作,涉及各个层次的配置和交互。理解并掌握这一过程对于开发高效、可...

    struts拦截器介绍

    14. **Model DrivenInterceptor**:模型驱动拦截器,如果Action实现了ModelDriven接口,它会将getModel得到的结果放入Value Stack。 15. **Scoped ModelDrivenInterceptor**:作用域模型驱动拦截器,如果Action实现...

    struts-default中拦截器介绍.pdf

    2. `autowiring` 拦截器:当Struts 2与Spring框架集成时,该拦截器能够自动装配Spring容器中的Bean,使得Struts 2的Action可以直接使用Spring管理的Bean。 3. `chain` 拦截器:它构建了一个Action链,使得当前...

    ssh2单元测试action的例子

    `PersonAction`类继承自`BaseAction`并实现了`ModelDriven<Person>`和`Preparable`接口。 ```java public class PersonAction extends BaseAction implements ModelDriven, Preparable { private static final ...

    struct+spring+Hibernate框架整合文档

    2. **Action类设计**:Action类需要实现`ModelDriven`或`Preparable`接口,以便于数据绑定和生命周期管理。 ### Spring框架 Spring作为业务层框架,负责依赖注入(DI)和面向切面编程(AOP)。在SSH整合中,Spring...

    SSH框架整合

    这通常通过实现Spring提供的`ModelDriven`或`Preparable`接口,或者使用`struts-plugin.xml`配置文件中的`<spring:bean>`标签来实现。 3. **配置Hibernate**:在Spring配置文件中,我们需定义SessionFactory和数据...

    理解拦截器用于在某个方法或字段被访

    - **Model Driven Interceptor**:如果Action实现了ModelDriven接口,将getModel的结果放入Value Stack。 - **Scoped Model Driven Interceptor**:为ScopedModelDriven接口的Action从相应作用域中获取model。 - ...

Global site tag (gtag.js) - Google Analytics