struts2默认拦截器堆栈配置

发布于 2024-10-14 01:38:32 字数 780 浏览 0 评论 0原文

我想为异常拦截器配置一个参数来记录异常。 因此,我在 struts.xml 中创建了一个包,并从 struts-default.xml 复制了默认堆栈。 然而它不记录异常并且似乎仍然使用defaultStack。

这是我的 struts.xml:

<struts>
   <package name="default" extends="struts-default">
      <interceptors>
         <interceptor-stack name="myStack">
            <interceptor-ref name="exception">
               <param name="logEnabled"> true </param>
               <param name="logCategory"> struts </param>
               <param name="logLevel"> ERROR </param>
            </interceptor-ref>
            ...
         </interceptor-stack>
      </interceptors>

      <default-interceptor-ref name="myStack" />
   </package>
</struts>

I want to configure a parameter for the exception interceptor to log exceptions.
So I created a package in struts.xml and copied the default-stack from struts-default.xml.
However it doesn't log exceptions and seems to still use the defaultStack.

Here is my struts.xml:

<struts>
   <package name="default" extends="struts-default">
      <interceptors>
         <interceptor-stack name="myStack">
            <interceptor-ref name="exception">
               <param name="logEnabled"> true </param>
               <param name="logCategory"> struts </param>
               <param name="logLevel"> ERROR </param>
            </interceptor-ref>
            ...
         </interceptor-stack>
      </interceptors>

      <default-interceptor-ref name="myStack" />
   </package>
</struts>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冬天旳寂寞 2024-10-21 01:38:32

如果您添加的所有新操作都在同一个包中,即扩展 struts-default 的“default”包,那么这应该可以正常工作。

据我所知,只有一种可能会出错,那就是:
您已经在不同的包中编写了操作(再次扩展了 struts-default 而不是“default”-自定义包),因此,它将使用 defaultStack 作为默认拦截器堆栈,这是 struts-default 的默认堆栈。

因此,如果您希望 myStack 覆盖默认堆栈,请确保您的操作位于自定义包内 - “default”,或者位于扩展自定义包“default”的包内,而不是 struts-default 包内。

This should work fine, provided all the new actions that you add are in the same package, i.e, "default" package which extends struts-default.

AFAIK there can be just 1 possibility because of which it can go wrong, and that will be :
You have written your actions in a different package(that again extends struts-default rather than "default"-the custom package), and thus, it would use the defaultStack as the default interceptor stack, which is the default stack for struts-default.

So, if you want the default stack to be over-ridden by myStack, make sure that your action is inside your custom package - "default" or inside a package that extends your custom package "default" rather than the struts-default package.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文