【发布时间】:2011-11-21 11:11:03
【问题描述】:
如果服务或控制器发生异常,则由spring的HandlerExceptionResolvers处理。但是,如果在 .jsp 处理中出现异常(例如 - PropertyNotFoundException,即使使用 JSTL 也会发生),那么 spring 不会通过其异常处理机制传递它。更进一步,不认为是错误500,所以不考虑<error-page>配置
相反,异常会传播到 servlet 容器。这很好,但我实际上无法获得我想要的行为:
- 显示 (500) 错误页面
- 记录异常
我目前的设置:
- 500.jsp 有
isErrorPage=true - 所有 jsps 都包含一个公共文件,该文件具有
<%@ page errorPage="500.jsp" %>
发生的情况是 - 任何地方都没有记录异常。并且没有显示错误页面。相反,请求的页面显示为半渲染。如果我增加缓冲区大小(足以到达有问题的代码段),则只会显示错误页面。 (同样,没有日志记录)
那么,我该如何实现我想要的呢?不改变缓冲区大小,不使用<c:catch>,并且在错误页面中不使用ex.printStackTrace())
【问题讨论】:
-
你使用的是什么 ViewResolver?
-
InternalResourceViewResolver 与 JstlView。春天 3.1.0.SNAPSHOT。雄猫 7
-
博卓,你有没有很好地解决过这个问题?
标签: java jsp tomcat servlets spring-mvc