카테고리 없음

Struts2 DefaultStack Override

Soul-Learner 2014. 3. 30. 23:03

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>