struts2默认拦截器堆栈配置

时间:2011-01-24 04:02:41

标签: struts2 interceptorstack

我想为异常拦截器配置一个参数以记录异常。 所以我在struts.xml中创建了一个包,并从struts-default.xml复制了default-stack。 但是它没有记录异常,似乎仍然使用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>

1 个答案:

答案 0 :(得分:1)

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

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

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