问题描述
- Struts2 默认拦截器 不能拦截所有action
-
默认拦截器配置节选:<!-- 声明包的默认截拦器栈 -->
……
action配置:
<!-- 通用Action配置 --><action name="Login" class="Action.USER.LoginAction" method="login"></action> <action name="GetSessionInfo" class="Action.Util.GetSessionInfoAction" method="GetSessionInfo"></action> <action name="ShowPhoto" class="Action.Util.ImageAction" method="GetImagebyId"></action> <!-- 行政区划补全接口 --> <action name="RegionAutoComp" class="Action.Util.GetRegionInfoAction" method="AutoComplete"></action> <action name="GetGrassBType" class="Action.Util.GetGrassType" method="GetGrass_B_Type"></action> …… 各类具体的实现方法流程都大致相同 结果调用Login.action没有进入拦截器代码,而调用GetSessionInfo则能进入拦截器代码,而且进入拦截器的顺序也不一样,有的在执行完action后直接拦截器,有的首先执行拦截器再执行Action,这可能是什么原因导致的?
解决方案
package中action在添加fileUpload的拦截器的时候会在之前下面的代码:
给出的解释是配置fileUpload的拦截器会使默认的拦截器失效,
所以在配置package的默认拦截器的时候如果还写defaultStack就会使package的默认拦截器失效
所以defaultStack就应该改写为package的默认拦截器......
答案就在这里:struts2 中package的默认拦截器不能拦截某些action的原因
----------------------
解决方案二:
看不到你的默认拦截器配置,建议再坚持下拦截器配置信息看看,
解决方案三:
一篇详细介绍struts2拦截器的使用的文章,仅供参考:http://www.blogjava.net/zzzlyr/archive/2009/10/12/297998.html
时间: 2024-09-28 22:05:57