在Struts 2.1.6之前,ActionContextCleanUp的完整路径是com.opensymphony.webwork.dispatcher.ActionContextCleanUp,现在的路径变成了org.apache.struts2.dispatcher.ActionContextCleanup。
那么这个类究竟有什么用处呢?是不是一定要用呢?
下面是这个类内部的注释。
Special filter designed to work with the FilterDispatcher and allow
for easier integration with SiteMesh. Normally, ordering your filters to have
SiteMesh go first, and then FilterDispatcher go second is perfectly fine.
However, sometimes you may wish to access Struts features, including the
value stack, from within your SiteMesh decorators. Because FilterDispatcher
cleans up the ActionContext, your decorator won't have access to the
data you want.
By adding this filter, the FilterDispatcher will know to not clean up and
instead defer cleanup to this filter. The ordering of the filters should then be:
1.this filter
2.SiteMesh filter
3.FilterDispatcher
就是说,一般情况下,如果你要用SiteMesh或者其他过滤器,一般是放在FilterDispatcher或者是现在的StrutsPrepareAndExecuteFilter之前。在调用完所有过滤器的doFilter方法后,核心过滤器FilterDispatcher或者StrutsPrepareAndExecuteFilter会清空ActionContext,如果其他过滤器要一直使用value stack等struts的特性时,如果不用ActionContextCleanUp的话,便得不到想要的值。
ActionContextCleanUp的作用就是上面用粗体标注出来的那一句。它会在doFilter方法里设置一个计数器counter的初始值为1,有了这个值,后续的核心过滤器就不会清空ActionContext,而是由之前的过滤器也就是ActionContextCleanUp来清空ActionContext。
转自:http://changli269.iteye.com/blog/928190
分享到:
相关推荐
at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.cleanUp(MultiPartRequestWrapper.java:271) at org.apache.struts2.dispatcher.Dispatcher.cleanUpRequest(Dispatcher.java:837) at org....
1. **struts-cleanup**过滤器:该过滤器的作用是在Struts2处理完请求之后不立即清除`ActionContext`,这样可以让SiteMesh有机会访问到Struts2的值栈,从而实现数据的正确渲染。 ```xml <filter-name>struts-...
- 添加一个名为`struts-cleanup`的过滤器,使用`org.apache.struts2.dispatcher.ActionContextCleanUp`类。 ```xml <filter-name>struts-cleanup <filter-class>org.apache.struts2.dispatcher....
此外,还应配置Struts2的清理过滤器(struts-cleanup),以确保每个请求结束后都能清理线程局部变量,避免内存泄漏。 **4. 添加Flex JAR包** 在整合过程中,Flex的JAR包也是不可或缺的,它们包含了Flex运行时所需...
<filter-name>struts-cleanup <url-pattern>/* ``` 该过滤器的主要作用是在请求结束后清理Struts2的ActionContext,防止内存泄漏等问题。 ### 总结 通过上述的配置,我们可以有效地解决基于Struts2.1.6、...
注意:这里是有顺序的,先ActionContext CleanUp,再其他过滤器(Othter Filters、SiteMesh等),最后到FilterDispatcher。 FilterDispatcher是控制器的核心,就是MVC的Struts 2实现中控制层(Controller)的核心...
除了`FilterDispatcher`外,Struts2还提供了其他的过滤器,如`struts-cleanup`、`SiteMesh`等。这些过滤器可以根据项目需求进行配置和使用。 ### Apache + Resin部署 如果使用的是Apache和Resin服务器组合,则需要...
9. 最后,`cleanup`方法用于清理资源,确保初始化过程的完整性和资源的有效管理。 `Dispatcher`的创建和初始化是整个流程的关键。`createDispatcher`方法创建`Dispatcher`实例,并通过`filterConfig`获取初始化参数...
<filter-name>struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp <filter-name>struts-cleanup <url-pattern>/* ``` - 可以进一步添加自定义过滤器来处理特定的编码问题,例如...
<filter-name>struts-cleanup <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp <filter-name>struts-cleanup <url-pattern>/* </filter-mapping> --> <!-- 新的配置 --> <filter-name>...
3. Struts2配置:定义了两个过滤器,`struts-cleanup`用于清理ActionContext,`struts2`是Struts2的核心过滤器,负责处理所有`.action`结尾的请求。 三、Spring配置: Spring框架的核心配置文件,如`DefaultContext...
<filter-name>struts-cleanup <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp <filter-name>struts-cleanup <url-pattern>/* <filter-name>struts2 <filter-class>org.apache....
- **Struts2配置**:配置Struts2的`struts-cleanup`和`struts2`过滤器,`FilterDispatcher`是Struts2的核心,负责处理所有HTTP请求。 - **Spring配置**:在`applicationContext-services.xml`中,定义Bean以及它们...
<filter-name>struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp <filter-name>struts-cleanup <url-pattern>/* ``` 这个过滤器用于清理Struts2执行后遗留的ActionContext。 2...
<filter-name>struts-cleanup <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp <filter-name>struts-cleanup <url-pattern>/* ``` - **作用**:此过滤器用于清理Struts框架中的临时对象...
- `CLEANUP_RECURSION_COUNTER`参数计数加1,并存入request中。 - 将`actionContext`存入`ThreadLocal`。 4. 分配`dispatcher`到当前线程。 5. 根据`excludedPatterns`检查URL是否应被排除,如果匹配则跳过Struts...
<filter-name>struts2-cleanup <url-pattern>/* ``` 这段配置的作用是每当请求结束后自动清理ActionContext,这对于提高系统的健壮性和稳定性是非常有帮助的。 #### 总结 综上所述,解决Struts2上传文件后文件...
- 在`web.xml`中,添加一个Struts2的清理过滤器(`struts-cleanup`),并确保其处理所有URL: ```xml <filter-name>struts-cleanup <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp ...