<package name="default" namespace="/" extends="struts-default"> <action name="checkInAction" class="com.tw511.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.tw511.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.tw511.common.action.CheckInAction" > <interceptor-ref name="defaultStackWithLog"/> <result name="success">/pages/checkIn.jsp</result> </action> <action name="checkOutAction" class="com.tw511.common.action.CheckOutAction" > <interceptor-ref name="defaultStackWithLog"/> <result name="success">/pages/checkOut.jsp</result> </action> </package>
在上面的例子更新,宣告一個攔截器棧,命名為「defaultStackWithLog」其中包括「timer「, 「logger」 和 「defaultStack」 攔截器,並且它通過「interceptor-ref」元素參照一個正常的攔截器。