【问题标题】:Struts2 how to override the global interceptor stack for an actionStruts2如何为一个动作覆盖全局拦截器堆栈
【发布时间】:2016-10-12 15:28:00
【问题描述】:
<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 -->

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

【问题讨论】:

  • 定义其他堆栈并在动作配置中使用它。有什么问题?
  • @AleksandrM 如果我为该特定操作指定另一个堆栈,除了堆栈之外,还会触发默认堆栈?

标签: struts2 overriding xml-configuration struts2-interceptors


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2012-06-02
    • 2020-06-29
    相关资源
    最近更新 更多