Struts2重寫攔截器參數

在Struts2中,可以設置或通過普通的<param>標籤重寫攔截器的參數。見下麵的例子:
<package name="default" namespace="/" extends="struts-default">
   <action name="whateverAction"
	class="com.xuhuhu.common.action.WhateverAction" >
	<interceptor-ref name="workflow">
		<param name="excludeMethods">whateverMethod</param>
	</interceptor-ref>
	<result name="success">pages/whatever.jsp</result>
   </action>
</package> 

然而,在上面的代碼片段,動作類被聲明為自己的攔截器, 它會導致繼承“defaultStack”攔截器的直接丟失。

如果你想保持“defaultStack”攔截器,並覆蓋工作流的excludeMethods參數呢?沒問題,試試這個:

<package name="default" namespace="/" extends="struts-default">
   <action name="whateverAction"
	class="com.xuhuhu.common.action.WhateverAction" >
	<interceptor-ref name="defaultStack">
		<param name="workflow.excludeMethods">whateverMethod</param>
	</interceptor-ref>
	<result name="success">pages/whatever.jsp</result>
   </action>
</package>
上面的代碼片段將保持“defaultStack”攔截並覆蓋“workflow”參數。

參考

  1. Struts2攔截器文檔 
  2. Struts2流程攔截器文檔

上一篇: Struts2映射攔截動作 下一篇: Struts2攔截器棧的例子