SpringBoot
自定义 404、500
错误页面SpringBoot
默认的异常处理机制SpringBoot
默认已经提供了一套处理异常的机制。一旦程序中出现了异常 SpringBoot
会向 /error
的 url
发送请求。在 SpringBoot
中提供了一个名为 BasicErrorController
的类来处理 /error
请求,然后跳转到默认显示异常的页面来展示异常信息
在使用 thymeleaf
等模板引擎时,SpringBoot
会自动到 src/main/resources/templates/error/
,文件夹下寻找 404.html、500.html
的错误提示页面
错误提示页面的命名规则就是:错误码.html
,如 404
是 404.html
,500
是 500.html
SpringBoot
项目如下404、500
错误提示页面结构如下
application.properties
项目配置文件server.port=8080
#它的默认值就是classpath:/templates/,源码在ThymeleafProperties类中
spring.mvc.view.prefix=classpath:/templates/
#它的默认值就是.html,源码在ThymeleafProperties类中
spring.mvc.view.suffix=.html
spring.thymeleaf.cache=false
404
页面内容如下
404
500
页面内容如下
500
Controller
如下@Controller
public class PageController {
// 跳转到登录页
@GetMapping(path = "/toLogin")
public String toLogin() {
int code = 1/0;
return "login";
}
}
404.html
页面测试访问不存在的接口:http://localhost:8080/aaaa
,结果如下
500.html
页面测试访问已存在的接口:http://localhost:8080/toLogin
,结果如下
如果没有使用 thymeleaf
等模板引擎时,SpringBoot
会到静态资源文件夹寻找 404.htm、500.html
的错误提示页面,命名同上。SpringBoot
中默认的静态资源路径有 4
个,分别是
classpath:/METAINF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
优先级顺序为:META-INF/resources > resources > static > public
,以上 4
种路径创建 error
文件夹,再创建 404、500
错误提示页面如下
不用写额外的映射器,就能直接请求到