Struts 2はインターセプタのパラメータをオーバーライドします
Struts 2では、汎用
<param>
タグを使用してインターセプタ・パラメータを設定または上書きできます。下記の例を参照してください
<package name="default" namespace="/" extends="struts-default">
<action name="whateverAction"
class="com.mkyong.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.mkyong.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
“パラメータをオーバーライドします。
リファレンス
インターセプタのドキュメント]。
http://struts.apache.org/2.0.14/docs/workflow-interceptor.html
[Struts
2ワークフローインターセプタのドキュメント]