自定义White page error
Spring boot 中自定义White page
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Spring Boot默认使用嵌入式Tomcat,默认没有页面来处理404等常见错误. 因此我们在使用spring boot的时候很多时候会出现这个页面, 不美观不说, 还影响用户使用感
今天就讲解下怎么自定义自己的空白页
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2. 文件中的内容如下:
文中采用的是thymeleaf 模板, 有兴趣的可以去了解下 , 很好用
- 因为错误请求是跳转到 /error , 我们给他写个error.的controller, 让他接收到请求, 并且跳转到我们定义好的error.html页面中
4.我们创建了一个CustomizedController 的控制类 , 注意RequestMapping中需要填写
@RequestMapping("${server.error.path:${error.path:/error}}")
然后需要实现ErrorController 这个接口 , 再实现他的方法 getErrorPath()
在方法中返回的便是我们刚刚书写好的error.html页面. - 这样子是处理了所有错误, 但是有时候我们想知道是什么错误, 那我们便需要在控制器中继续书写两个方法 .
这样子是处理400 系列和 500 系列的错误,但是我们如果就是想知道具体的错误那该怎么办 - 书写一个自定义的异常 , 实现RuntimeException接口 , 创建一个错误码的接口, 然后创建一个自己的错误枚举实现错误码接口, 枚举里面写上自己定义的错误
- 创建一个 CustomizedExceptionHandler , 在这个类的上面添加 @ControllerAdvice 注解 , 然后添加一个hanle 的方法, 返回的是ModelAndView , 在方法的上面添加 @ExceptionHandler(Exception.class) 注解
这个类中会自动捕捉到异常, 如果捕捉到的异常是我们自己写的异常, 那就会把我们书写的异常信息添加到 model里面. 然后返回给error页面.