Struts2中内建了许多拦截器,用来完成相应的功能。
当为某个action显式指定了某个拦截器,同时还希望使用到默认拦截器栈(defaultStack),那么需要手工引用默认拦截器栈,同时要注意引用的顺序,一般先引用默认拦截器栈。
例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<!-- 注册拦截器 -->
<interceptors>
<interceptor name="mytimer" class="com.interceptor.TimerInterceptor"></interceptor>
</interceptors>
<action name="timer" class="com.action.TimerAction">
<result>/success.jsp</result>
<!-- 为Action显示引用拦截器后,默认的拦截器defaultStack不再生效,需要手工引用 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<!-- 引用已注册的拦截器 -->
<interceptor-ref name="mytimer"></interceptor-ref>
</action>
</package>
</struts>