Struts 2ブロッカーに関する要素
Struts 2では、インターセプタに関連する要素としてintercetors,intercetor,intercetor-ref,intercetor-stack,default-intercetor-refの5つがある.
ブロッキングを使用する前に、の段落にintercetor要素で登録する必要があります.たとえば、次のpackageに2つのブロッキングを登録します.
ブロッキングをアクションに追加するには、アクションのaction要素の下でintercetor-ref要素を使用します.次のようにします.
ほとんどのstrutsアプリケーションには複数のaction要素があり、action要素にブロッキングリストを繰り返しリストすると面倒になる可能性があります.この場合、ブロッキングエントリ要素(intercetor-stack)が使用されます.
struts-defaultパッケージでは、いくつかのブロッキングスタックと1つのdefault-intercetor-ref要素が定義されています.アクションにブロッキングが定義されていない場合は、この要素で定義されたデフォルトのブロッキングまたはブロッキングスタックが使用されます.
アクションがデフォルトのブロッキングに加えて他のブロッキングにも使用される場合は、action要素にintercetor要素が表示されるとdefault-intercetor-ref要素が無視されるため、デフォルトのブロッキングを再定義する必要があります.
ブロッキングを使用する前に、
<package name="myPackage" extends="struts-default">
<intercetors>
<intercetor name="validate" class="com..."/>
<intercetor name="logger" class="com..."/>
</intercetors>
</package>
ブロッキングをアクションに追加するには、アクションのaction要素の下でintercetor-ref要素を使用します.次のようにします.
<package name="myPackage" extends="struts-default">
<intercetors>
<intercetor name="validate" class="com..."/>
<intercetor name="logger" class="com..."/>
</intercetors>
<action name="delete" class="com...">
<intercetor-ref name="validate"/>
<intercetor-ref name="logger"/>
<result name="success">/jsp/success.jsp</result>
</action
</package>
ほとんどのstrutsアプリケーションには複数のaction要素があり、action要素にブロッキングリストを繰り返しリストすると面倒になる可能性があります.この場合、ブロッキングエントリ要素(intercetor-stack)が使用されます.
<package name="myPackage" extends="struts-default">
<intercetor-stack name="myStack">
<intercetor name="validate" class="com..."/>
<intercetor name="logger" class="com..."/>
</intercetor-stack>
<action name="delete" class="com...">
<intercetor-ref name="myStack"/>
<result name="success">/jsp/success.jsp</result>
</action>
</package>
struts-defaultパッケージでは、いくつかのブロッキングスタックと1つのdefault-intercetor-ref要素が定義されています.アクションにブロッキングが定義されていない場合は、この要素で定義されたデフォルトのブロッキングまたはブロッキングスタックが使用されます.
<default-intercetor-ref name="defaultStack" />
アクションがデフォルトのブロッキングに加えて他のブロッキングにも使用される場合は、action要素にintercetor要素が表示されるとdefault-intercetor-ref要素が無視されるため、デフォルトのブロッキングを再定義する必要があります.