我想为异常拦截器配置一个参数以记录异常。 所以我在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>
答案 0 :(得分:1)
如果您添加的所有新操作都在同一个包中,即扩展struts-default的“default”包,这应该可以正常工作。
AFAIK只有一种可能性,因为它可能出错,那将是: 您已经在不同的包中编写了您的操作(这再次扩展了struts-default而不是“default” - 自定义包),因此,它将使用defaultStack作为默认拦截器堆栈,这是struts-default的默认堆栈
因此,如果您希望myStack覆盖默认堆栈,请确保您的操作位于自定义程序包中 - “默认”或在扩展自定义程序包“default”而不是struts的程序包内部 - 默认包。