Struts2 如何覆盖动作的全局拦截器堆栈

Struts2 how to override the global interceptor stack for an action

<interceptor-stack name="DefaultTEST">
    <interceptor-ref name="exception" />
    <!-- some more interceptors go in here -->
    <interceptor-ref name="debugging" />
</interceptor-stack>

<default-interceptor-ref name="DefaultTEST" />

<action name="welcome">
    <result type="tiles">WELCOME_PAGE</result>
</action>

<action name="">
    <result ...>...</result>
</action>

... <!-- more actions -->

所以我的问题是如何覆盖默认拦截器堆栈,以便可以加载一些其他拦截器(或拦截器堆栈)的欢迎操作,而默认拦截器不会加载。

如果您在操作配置中明确引用拦截器或拦截器堆栈,则可以覆盖拦截器配置。

<action name="welcome">
    <interceptor-ref name="defaultStack" />
    <result type="tiles">WELCOME_PAGE</result>
</action>

只有 defaultStack 会执行 welcome 操作。其他不覆盖此包中拦截器配置的操作将使用 DefaultTEST 因为它被配置为默认值。