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,这可能是什么原因导致的?

3个回答

package中action在添加fileUpload的拦截器的时候会在之前下面的代码:

给出的解释是配置fileUpload的拦截器会使默认的拦截器失效,
所以在配置package的默认拦截器的时候如果还写defaultStack就会使package的默认拦截器失效
所以defaultStack就应该改写为package的默认拦截器......
答案就在这里:struts2 中package的默认拦截器不能拦截某些action的原因
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

看不到你的默认拦截器配置,建议再坚持下拦截器配置信息看看,

wojiushiwo945you
毕小宝 回复kingback_07: 配置是没有问题啊,你怎么判断没有进入拦截器的呢?
4 年多之前 回复
kingback_07
kingback_07 <package name="all" extends="struts-default" namespace="/"> <interceptors> <interceptor name="myinterceptor" class="Action.Util.InterceptorAction" /> <interceptor-stack name="myIntcepStack"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="myinterceptor" /> </interceptor-stack> </interceptors> <!-- 声明包的默认截拦器栈 --> <default-interceptor-ref name="myIntcepStack" />
4 年多之前 回复

一篇详细介绍struts2拦截器的使用的文章,仅供参考:http://www.blogjava.net/zzzlyr/archive/2009/10/12/297998.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问