为什么web.xml中的error-page无法捕获struts2的prepare方法抛出的异常

发布于 2024-11-30 12:41:34 字数 292 浏览 0 评论 0原文

我在 web.xml 中声明了一个全局异常处理程序,

<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/exceptionHandler</location>
</error-page>

它在大多数情况下都工作正常。但是它无法捕获struts2 actions中prepare方法抛出的异常

任何人都知道为什么

i declare a global exception handler in web.xml

<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/exceptionHandler</location>
</error-page>

it works fine most of the time. But it cannot capture the exceptions thrown from the prepare method in struts2 actions

anyone know why

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

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

发布评论

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

评论(1

丶视觉 2024-12-07 12:41:34

可能是因为 Struts2 的 ExceptionMappingInterceptor 捕获异常并将它们映射到错误页面本身。

您可以在 struts.xml 中使用以下内容:

<global-results>
    <result name="error">/WEB-INF/error.jsp</result>
</global-results>

<global-exception-mappings>
    <exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>

或者,如果您确实想使用 web.xml 方法,则可以从拦截器堆栈中删除 ExceptionMappingInterceptor 。

Probably because Struts2's ExceptionMappingInterceptor catches exceptions and maps them to error pages itself.

You can use the following in your struts.xml:

<global-results>
    <result name="error">/WEB-INF/error.jsp</result>
</global-results>

<global-exception-mappings>
    <exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>

Alternatively, you could remove the ExceptionMappingInterceptor from the interceptor stack if you really want to use the web.xml method.

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