Spring MVC:没有 web.xml 文件的 404 的自定义错误页面

jer*_*amb 5 java error-handling spring spring-mvc http-status-code-404

我有一个非常大的项目,有很多不同的控制器。我确实有一个主控制器,其中包含程序启动的所有映射,例如(/login、/resetPassword、/logout 等)。我的项目中也没有 web.xml 文件。我需要为所有未映射的请求添加一个自定义错误页面。我曾尝试创建自己的异常类,但没有奏效。我找到的大多数解决方案是向 web.xml 添加错误位置。我宁愿不必创建一个,但如果有人有任何提示或可以将我推向正确的方向,这将有很大帮助。我已经被这个问题困住了几天了。谢谢。

Aks*_*hay 1

您应该使用404映射到 中的错误页面web.xml。因为它甚至会处理未映射到您的DispatcherServlet. 例如,假设您的 SpringDispatcherServlet映射到任何以 结尾的 url .htm,现在一些错误输入并尝试访问something/somethingelse.do您的应用程序服务器现在将向用户显示其自己的默认错误页面,这可能会令人不快。

您应该考虑从 MVC 控制器提供自定义错误页面的唯一时间是当您有特定内容要向用户显示时。具体来说,如果在此特定控制器中遇到异常,我想显示特定消息,或将用户重定向到特定页面。在这些情况下,您可以使用@ExceptionHandlerSpring 控制器中的方法。

有关更多信息,请查看此博客文章,或参考 MVC 文档:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc