在SpringBoot中引发NoHandlerFoundException并配置自定义404页
我学春天才7个月。虽然我只使用SpringMVC,但我想通过抛出NoHandlerFoundException或在DispatcherServlet中启用它来配置定制404页面。现在,我正在学习spring boot,有人能给我解释一下吗?我也有同样的问题,已经解决了。下面给出了解决相同问题的步骤在SpringBoot中引发NoHandlerFoundException并配置自定义404页,spring,spring-boot,exception,Spring,Spring Boot,Exception,我学春天才7个月。虽然我只使用SpringMVC,但我想通过抛出NoHandlerFoundException或在DispatcherServlet中启用它来配置定制404页面。现在,我正在学习spring boot,有人能给我解释一下吗?我也有同样的问题,已经解决了。下面给出了解决相同问题的步骤 创建一个类GlobalExceptionHandler,并用@ControllerAdvice @ControllerAdvice 公共类GlobalExceptionHandler { @Excep
GlobalExceptionHandler
,并用@ControllerAdvice
@ControllerAdvice
公共类GlobalExceptionHandler
{
@ExceptionHandler(NoHandlerFoundException.class)
公共字符串handleNotFoundError(异常ex)
{
返回“重定向:/yourCustom404page”;
}
}
DispatcherServlet
在未找到处理程序时引发异常。我们可以通过将throweExceptionIfNoHandlerFound
servlet初始化参数设置为true
a。在弹簧靴中
spring.resources.add mappings=false
在application.properties或yaml文件中
b。如果spring mvc基于java的配置
公共类AppInitializer扩展AbstractAnnotationConfigDispatcherServletInitializer
{
...
@凌驾
受保护的DispatcherServlet createDispatcherServlet(WebApplicationContext servletAppContext)
{
最终DispatcherServlet=(DispatcherServlet)super.createDispatcherServlet(servletAppContext);
setThroweExceptionIfNoHandlerFound(true);
返回servlet;
}
}
c。如果是基于spring mvc xml的配置,请按如下方式初始化dispatcher servlet
调度员
org.springframework.web.servlet.DispatcherServlet
ThroweExceptionIfNoHandlerFound
真的
为什么不试试春天的老办法呢?它应该在启动时工作,有人建议我以这种方式处理异常。在春季,我通过在dispatcherServlet.xml中将ThorweExceptionIfNoHandlerFound设置为true来捕获404 not found期望值。但在boot中,我无法找到正确捕获404NotFound异常的方法。@ExceptionHandler(Exception.class)是否也捕获404NotFound异常?