struts2默认侦听器堆栈配置

struts2默认侦听器堆栈配置,struts2,interceptorstack,Struts2,Interceptorstack,我想为异常侦听器配置一个参数来记录异常。 因此,我在struts.xml中创建了一个包,并从struts-default.xml复制了默认堆栈。 但是,它不会记录异常,并且似乎仍然使用defaultStack 以下是我的struts.xml: <struts> <package name="default" extends="struts-default"> <interceptors> <interceptor-st

我想为异常侦听器配置一个参数来记录异常。 因此,我在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>

真的
支柱
错误
...

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

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


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

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

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


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

请将所有xml至少间隔4个空格,它将显示出来。请填写。。。我将上面的XML片段复制到我自己的webapp中,并从默认的struts XML文件中填充了默认堆栈的其余部分,效果很好。在您的项目中,一定有其他事情在进行,这将阻止日志记录的发生。提供您正在使用的整个struts.xml文件将有助于解决您的问题。请将所有xml至少间隔4个空格,它将显示出来。请填写。。。我将上面的XML片段复制到我自己的webapp中,并从默认的struts XML文件中填充了默认堆栈的其余部分,效果很好。在您的项目中,一定有其他事情在进行,这将阻止日志记录的发生。提供您正在使用的整个struts.xml文件将有助于解决您的问题。