<package name="default" namespace="/" extends="struts-default">
<action name="checkinaction"
class="com.h3.common.action.checkinaction" >
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
<interceptor-ref name="defaultstack" />
<result name="success">/pages/checkin.jsp</result>
</action>
<action name="checkoutaction"
class="com.h3.common.action.checkoutaction" >
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
<interceptor-ref name="defaultstack" />
<result name="success">/pages/checkout.jsp</result>
</action>
</package>
幸运的是,在struts 2自带的拦截器栈,使开发人员建立一组拦截到一个单元名为“栈名字”, 和可以通过“栈名字”引用操作它。
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor-stack name="defaultstackwithlog">
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
<interceptor-ref name="defaultstack" />
</interceptor-stack>
</interceptors>
<action name="checkinaction"
class="com.h3.common.action.checkinaction" >
<interceptor-ref name="defaultstackwithlog"/>
<result name="success">/pages/checkin.jsp</result>
</action>
<action name="checkoutaction"
class="com.h3.common.action.checkoutaction" >
<interceptor-ref name="defaultstackwithlog"/>
<result name="success">/pages/checkout.jsp</result>
</action>
</package>
在上面的例子更新,声明一个拦截器栈,命名为“defaultstackwithlog”其中包括“timer“, “logger” 和 “defaultstack” 拦截器,并且它通过“interceptor-ref”元素引用一个正常的拦截器。