Struts2 DefaultStack Override
Struts 2에서 모든 액션에 적용되는 DefaultStack 의 인터셉터 오버라이드 문제
아래와 같이 액션을 선언하고 액션과 함께 사용할 인터셉터를 선언할 수가 있다.
<package name="default" extends="struts-default">
<action name="sampleAction" class="test.SampleAction" >
<interceptor-ref name="workflow">
<param name="excludeMethods">actionMethod</param>
</interceptor-ref>
<result name="success">jsp/result.jsp</result>
</action>
</package>
위의 액션 섫정은 DefaultStack 에 포함된 workflow 인터셉터를 오버라이드하고 있는데 위와 같이 사용하면 DefaultStack 내의 workflow 인터셉터만 사용할 수 있게 되고 workflow 인터셉터를 제외한 DefaultStack 에 포함된 모든 인터셉터들은 사용할 수 없는 상태가 된다
만약 DefaultStack에 포함된 모든 인터셉터를 그대로 사용하면서 DefaultStack내의 특정 인터셉터를 오버라이드하고자 한다면 다음과 같이 하면 된다
<package name="default" extends="struts-default">
<action name="sampleAction" class="test.SampleAction" >
<interceptor-ref name="defaultStack">
<param name="workflow.excludeMethods">actionMethod</param>
</interceptor-ref>
<result name="success">jsp/result.jsp</result>
</action>
</package>