struts2ActionContextCleanUp的作用
2015-06-29 16:10
543 查看
延长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>
相关文章推荐
- Javascript中的闭包与作用域
- 接口的作用
- 什么是拷贝构造函数,它的作用是什么?
- 第一章 算法在计算中的作用
- ES6,箭头函数解决this作用域问题
- Visual Studio环境变量、工作目录、vc++目录、 命令等 的配置和作用
- Linux编程中 #define _XOPEN_SOURCE的作用
- Spring 占位符解析器的作用 - PropertyPlaceholderHelper
- SetImageROI函数设置ROI区域的作用及用法
- java get set 方法有什么作用?
- JavaScript之作用域与闭包详解
- #ifndef的主要作用是什么?
- sql where 1=1和 0=1 的作用
- @ModelAttribute注解的作用
- sql where 1=1和 0=1 的作用
- Android---Parcelable包装类的作用
- 链表引入头结点的作用
- CSS中的position:relative;的作用
- Linux操作系统 sleep(0)、sleep(1)和sleep(-1)的区别,他们各有什么作用
- mycat中间件(四)mycat目录结构文件及作用