【发布时间】:2012-02-17 16:49:59
【问题描述】:
如何在不更改浏览器中的 URL 的情况下向用户显示一般错误页面(例如 404)?
例如,如果用户转到页面/happy/fun/times,但我的 Web 应用程序中不存在这样的图块视图/映射,我希望 URL 保持为 /happy/fun/times,但向他们显示/error/404 的图块视图而是。
另外,在相关说明中,我将如何处理所有错误,例如 500 错误或 403 错误?甚至可以通过某种方式解决的异常?
我已尝试使用 web.xml 执行以下操作:
<error-page>
<error-code>500</error-code>
<location>/error/500</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/404</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error/403</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error/general</location>
</error-page>
但这似乎不起作用。如果需要,我可以将位置更改为“/WEB-INF/jsp/error/404.jsp”,然后 web.xml 会捕获 404 错误。但是,它只显示“404.jsp”文件的内容,而不是我真正想要显示的图块视图“/error/404”。
【问题讨论】:
-
我不使用 Spring MVC,但不只是在
web.xml中将它们指定为<error-page>,这对您有用吗?
标签: servlets spring-mvc http-status-code-404