2

我想为异常拦截器配置一个参数来记录异常。所以我在 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>
4

1 回答 1

1

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

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

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

于 2011-08-12T12:01:08.357 回答