使用struts2拦截器、或者自定义拦截器是要特别注意:在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(使用struts2自带的timer拦截器):
<action name="loginAction" class="cn.wjq.study.login.action.LoginAction" method="login">
<result name="toWelcome">/login/welcome.jsp</result>
<interceptor-ref name="timer"></interceptor-ref>
<!--必须引用 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
也可以改为对全局Action设置自己需要的拦截器,如下:
在struts.xml里面定义全局的配置设置
<!-- 定义了一个新的拦截器栈,在这个拦截器栈中,先引用timer拦截器,再引用defaultStack拦截器栈 -->
<interceptors>
<interceptor-stack name="pubStack">
<!--timer拦截器 用来记录action的运行时间(在控制台上会打印出)-->
<interceptor-ref name="timer"/>
<!-- struts2默认栈(在引用其他栈或拦截器时必须引用defaultStack栈) -->
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<!-- 定义默认的拦截器引用为这个新定义的拦截器栈 pubStack-->
<default-interceptor-ref name="pubStack"/>
本文介绍Struts2框架中拦截器的配置方法,重点强调了必须引用struts2自带的defaultStack拦截器堆栈,并提供了自定义拦截器栈及全局设置的示例。
343

被折叠的 条评论
为什么被折叠?



