首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts1的tiles罗致的response cache无法禁止的issue

2014-04-18 
struts1的tiles导致的response cache无法禁止的issue近日struts 1项目中遇到一个很怪异的问题,项目中的所

struts1的tiles导致的response cache无法禁止的issue
近日struts 1项目中遇到一个很怪异的问题,项目中的所有.do都是继承自同一个root tiles,根JSP里面有把cache禁掉:

response.setHeader("Cache-Control", "no-cache, must-revalidate, proxy-revalidate, no-store");response.setHeader("Pragma", "no-cache");response.setHeader("Expires", "0");response.setDateHeader("Expires", 0L);

但是在firebug里面看http response,大部分.do的response都没有cache,但是有个别.do的response cache依旧存在。。。

真见鬼了。。。

后仔细比对struts-config,发现那两个特殊的.do,都是在tiles里面forward到了其他.do:
<action path="/Index" type="com.cuishen.HomeAction"><forward name="success" path="success.home"/></action>

<definition name="success.home" path="/user/info.do" />

上例中"/Index.do"和"/user/info.do"都是继承的相同的根JSP,但是访问"/Index.do"页面会被缓存,直接访问"/user/info.do"则不会!

后将"/Index.do"中的tiles移除,直接forward到"/user/info.do",后问题解决(如下代码)! (我擦,一般人还真想不到!!)
<action path="/Index" type="com.cuishen.HomeAction"><forward name="success" path="/user/info.do"/></action>


热点排行