延长action中属性的生命周期,包括自定义属性,以便在jsp页面中进行访问,让actionContextcleanup过滤器来清除属性,不让action自己清除。
为了使用WebWork,我们只需要在web.xml配置FilterDispatcher一个过滤器即可,阅读一下FilterDispatcher的JavaDoc和源码,我们可以看到它调用了:
finally
{
ActionContextCleanUp.cleanUp(req);
}
在ActionContextCleanUp中,有这样的代码:
req.setAttribute(CLEANUP_PRESENT, Boolean.TRUE);
如果FilterDispatcher检测到这个属性,就不会清除ActionContext中的内容了,而由ActionContextCleanUp后续的代码来清除,保证了一系列的Filter访问正确的ActionContext.
文档中提到,如果用到SiteMesh的Filter或者其他类似Filter,那么设置顺序是:
ActionContextCleanUp filter
SiteMesh filter
FilterDispatcher
所以最后我们的web.xml应该类似这样:
<filter> <filter-name>ActionContextCleanUp</filter-name> <filter-class>com.opensymphony.webwork.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.webwork.sitemesh.FreeMarkerPageFilter</filter-class> </filter> <filter> <filter-name>webwork</filter-name> <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>ActionContextCleanUp</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>webwork</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
相关推荐
Struts2 源码分析 Struts2 是一个基于MVC 模式的Web 应用程序框架,它的源码分析可以帮助我们更好地理解框架的内部机制和工作流程。下面是Struts2 源码分析的相关知识点: 1. Struts2 架构图 Struts2 的架构图...
- **ActionContextCleanUp**:这是一个可选过滤器,主要用于清理线程上下文中的`ActionContext`对象,对于Struts2与其他框架的集成非常有帮助。 - **StrutsPrepareAndExecuteFilter**:这是Struts2的主要过滤器,...
2. 请求通过一系列过滤器,包括可选的ActionContextCleanUp过滤器,帮助Struts2与其他框架集成。 3. FilterDispatcher被调用,它会询问ActionMapper来确定是否需要调用特定的Action。 4. 如果需要,FilterDispatcher...
Struts2提供了与其他框架的集成能力,如通过ActionContextCleanUp过滤器帮助集成SiteMesh实现页面布局。 总的来说,Struts2框架提供了一个结构化的方法来组织和管理Web应用,简化了开发过程,通过配置文件和拦截器...
Struts2是一个强大的Java web应用程序框架,它是Struts1的后续产品,融合了WebWork的核心技术,提供了全新的架构。在Struts2中,基于拦截器的机制被用来处理用户请求,这种设计使得业务逻辑控制器与Servlet API完全...
Struts2是一个流行的Java Web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。源码阅读对于理解其工作原理至关重要。本文将深入探讨Struts2的核心概念、类和请求处理流程。 首先,我们来看Struts2的架构...
其中,ActionContextCleanUp过滤器是可选的,但它在Struts2与其他框架(如SiteMeshPlugin)的集成中扮演了重要角色,确保了环境的干净与隔离,防止不同请求之间的数据污染。 #### 3. FilterDispatcher调用 接下来...
2. **过滤器处理**:请求首先会经过一系列过滤器,如ActionContextCleanUp过滤器,用于清理Action上下文环境,这对于集成其他框架(如SiteMeshPlugin)非常重要。 3. **ActionMapper解析**:FilterDispatcher调用...
ActionContextCleanUp过滤器的作用是清理Action中的属性,确保它们在JSP页面中仍然可访问,提供了一种跨请求共享数据的方法。通过这样的设计,Struts2提供了一个高度可定制和可扩展的框架,使得开发者能够更加专注于...
1. **struts-cleanup**过滤器:该过滤器的作用是在Struts2处理完请求之后不立即清除`ActionContext`,这样可以让SiteMesh有机会访问到Struts2的值栈,从而实现数据的正确渲染。 ```xml <filter-name>struts-...
一个请求在Struts 2框架中的处理大概分为以下几个步骤。 客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入 http://localhost: 8080/bookcode/ch2/Reg.action就是提交一个(HttpServletRequest)...
5. **整合Struts2**:Struts2需要通过过滤器进行配置,如`ActionContextCleanUp`和`FilterDispatcher`,确保DWR能够与Struts2框架协同工作。 **Struts2与DWR集成** Struts2提供了强大的MVC功能,DWR则负责处理前端...
Struts2提供了一个名为`ActionContextCleanUp`的过滤器,它负责清理ActionContext,确保请求处理过程中使用的字符集是UTF-8。在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免...
- 添加一个名为`struts-cleanup`的过滤器,使用`org.apache.struts2.dispatcher.ActionContextCleanUp`类。 ```xml <filter-name>struts-cleanup <filter-class>org.apache.struts2.dispatcher....
2. **过滤器链**:请求首先经过一系列过滤器,包括`ActionContextCleanUp`,它清理线程上下文,然后可能有其他自定义过滤器,如`SiteMesh`用于页面布局,最后到达`FilterDispatcher`。 3. **FilterDispatcher**:...
2. 请求通过一系列的过滤器,其中包括ActionContextCleanUp过滤器,用于清理ActionContext,防止内存泄漏。 3. 过滤器链到达FilterDispatcher,这是Struts2的核心组件。它根据ActionMapper确定是否需要调用特定的...
2. 请求通过一系列过滤器,其中包括ActionContextCleanUp过滤器,它有助于Struts2与其他框架的集成。 3. FilterDispatcher过滤器被调用,它会咨询ActionMapper来确定请求是否应该映射到某个Action。 4. 如果...
这些过滤器中包含了一个可选的`ActionContextCleanUp`过滤器,这个过滤器对于Struts2与其他框架(比如SiteMeshPlugin)的集成非常有帮助,因为它可以清除可能遗留的Action上下文,确保每次请求都是干净的环境。...
### Struts2内核知识点详解 #### 一、Struts2概述 Struts2是一个基于MVC模式的开源Java Web应用框架,它继承了Struts1的一些设计理念,并且吸收了WebWork框架的优点,使得它在架构上更加灵活、强大。对于初学者来...