paramsPrepareParamsStack在Struts 2.0中是一个很奇妙的interceptor stack,以至于很多人疑问为何不将其设置为默认的interceptor stack。paramsPrepareParamsStack主要解决了ModelDriven和Preparable的配合问题,从字面上理解来说,这个stack的拦截器调用的顺序为:首先params,然后prepare,接下来modelDriven,最后再params。Struts 2.0的设计上要求modelDriven在params之前调用,而业务中prepare要负责准备model,准备model又需要参数,这就需要在 prepare之前运行params拦截器设置相关参数,这个也就是创建paramsPrepareParamsStack的原因。流程如下:
1. params拦截器首先给action中的相关参数赋值,如id
2. prepare拦截器执行prepare方法,prepare方法中会根据参数,如id,去调用业务逻辑,设置model对象
3. modelDriven拦截器将model对象压入value stack,这里的model对象就是在prepare中创建的
4. params拦截器再将参数赋值给model对象
5. action的业务逻辑执行 依据此stack
分享到:
相关推荐
defaultStack是Struts2中的默认拦截器栈,它包含了多个拦截器,例如exception、alias、servletConfig、i18n、prepare、chain、scopedModelDriven、modelDriven等。 六、params拦截器 params拦截器是Struts2中的一个...
在Struts2框架中,为了提高代码的可维护性和可读性,开发人员经常使用到`ModelDriven`和`Preparable`这两种拦截器。本文档旨在通过分析这两种拦截器的原理及其实际应用来帮助开发者更好地理解和掌握它们。 #### 二...
### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,...
Struts2是一个强大的Java EE应用程序框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用。它是在Struts1的基础上发展起来的,旨在解决其前身在灵活性和可扩展性上的不足。Struts2提供了更加优雅的API,更加...
Struts2的`ValueStack`会将请求参数自动绑定到Action的属性上,这被称为“模型驱动”(ModelDriven)。同时,`Preparable`接口的`prepare()`方法可以在此阶段被调用,进行预处理。 5. **拦截器(Interceptor)**:...
在Struts2中,`ModelDriven`接口用于实现MVC模式中的Model层。当一个Action类实现了`ModelDriven`接口后,它必须提供一个`getModel()`方法,该方法返回一个业务对象,这个对象将作为视图的数据模型。 例如: ```...
Action类需要继承自`org.apache.struts2.interceptor.FileUploadInterceptor`支持的接口,例如`Preparable`和`ModelDriven`。然后,定义一个或多个属性,它们将作为上传文件的载体。这些属性需要使用`@ultipartFile`...
Spring4.0、Struts2.3.15、Hibernate4.2.4、jQuery1.9.1涉及到了诸多开发时的细节:ModelDriven、Preparable 拦截器、编写自定义的类型转换器、Struts2 处理 Ajax、OpenSessionInViewFilter、迫切左外连接、Spring ...
### Struts2拦截器详述 #### 一、理解拦截器 ##### 1.1 什么是拦截器? 拦截器(Interceptor)是面向切面编程(AOP)中的一项关键技术,主要用于在方法或字段被访问之前对其进行拦截,并在访问之前或之后加入特定...
Struts2是一个强大的MVC框架,它简化了Java Web应用的开发。其核心工作流程涉及多个组件协同工作,包括过滤器、ActionMapper、ActionProxy、ActionInvocation、Interceptor以及Dispatcher等。下面将详细解释这些概念...
同时,需要掌握Action类的编写,以及ModelDriven、Preparable等接口的使用。 3. **AMF通信**:在Flex与Struts之间,通常使用Action Message Format (AMF)进行数据交换,它是一种高效的数据传输格式。需要熟悉 ...
### Struts2内置拦截器简介 Struts2框架在实现MVC模式时,为了更好地管理请求处理过程中的各个阶段,引入了拦截器机制。通过拦截器可以对请求进行预处理或后处理,使得代码更加模块化和易于维护。Struts2提供了一...
2. **ActionForm**: 用于在控制器和视图之间传递数据的模型类。ActionForm对象包含了来自用户表单的数据,由ActionServlet传递给Action,再由Action处理后更新到业务模型。 3. **Action**: 这是处理用户请求的类,...
另一种方式是让Spring创建Action并注入到Struts2,Action类需要实现Spring的`ModelDriven`或`Preparable`接口。 SSH框架的整合是一个系统性的工作,涉及各个层次的配置和交互。理解并掌握这一过程对于开发高效、可...
这份文档将涵盖以下几个关键知识点:Maven依赖配置、Struts2配置、Spring集成以及具体的Action类实现和测试方法。 ### Maven依赖配置 为了进行SSH2框架内的单元测试,我们需要在项目的`pom.xml`文件中添加必要的...
Struts 2 框架中的拦截器是其核心组件之一,主要负责在Action执行前后进行额外的操作,如参数绑定、验证、权限控制等。在`struts-default`配置中,许多默认的拦截器组合成预设的拦截器栈,为开发者提供了便捷的功能...
Struts2 框架是Java Web开发中广泛使用的MVC框架之一,它极大地简化了企业级应用的开发。在Struts2中,拦截器(Interceptor)是一个至关重要的概念,它扮演着处理请求、增强功能和控制流程的角色。拦截器是在Action...
2. **Action类设计**:Action类需要实现`ModelDriven`或`Preparable`接口,以便于数据绑定和生命周期管理。 ### Spring框架 Spring作为业务层框架,负责依赖注入(DI)和面向切面编程(AOP)。在SSH整合中,Spring...
这通常通过实现Spring提供的`ModelDriven`或`Preparable`接口,或者使用`struts-plugin.xml`配置文件中的`<spring:bean>`标签来实现。 3. **配置Hibernate**:在Spring配置文件中,我们需定义SessionFactory和数据...
在Web开发框架如Struts 2中,拦截器扮演着关键的角色,它们可以实现日志记录、事务管理、权限检查等多种功能。 1. **拦截器的工作原理** 拦截器通常基于代理模式工作。当一个请求到达应用程序时,框架会根据配置...