Spring boot定制错误页面

定制错误页面

浏览器访问
如果,程序出错了
需要返回一个符合项目网站风格的页面

有模板引擎的情况下
error/状态码

将错误页面命名为,错误状态码.html
放在模板引擎文件夹里面的,error文件夹下
发生此状态码的错误,就会来到对应的页面
Spring boot定制错误页面_第1张图片

DefaultErrorViewResolver

默认错误视图解析器
Spring boot定制错误页面_第2张图片
可以使用
4xx和5xx作为错误页面的文件名
来匹配这种类型的,所有错误

查找规则,精确优先

优先寻找,精确的状态码.html
如果,没有找到,就返回4xx.html页面

比如,寻找403错误页面
没有的话,返回4xx.html

ModelAndView

errorHtml返回页面
getErrorAttributes
Spring boot定制错误页面_第3张图片
ErrorAttributes
DefaultErrorAttributes实现了ErrorAttributes接口

作用,在页面共享信息
Spring boot定制错误页面_第4张图片
getErrorAttributes
实现了getErrorAttributes方法
Spring boot定制错误页面_第5张图片

获取信息

页面能获取的信息

timestamp:时间戳
status:状态码
error:错误提示
exception:异常对象
message:异常消息
errors:JSR303数据校验的错误都在这里

获取错误信息
可以在自定义错误页面,获取这些信息

比如,获取错误状态码、时间戳

"main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">

status:[[${status}]]

timestamp:[[${timestamp}]]

Spring boot定制错误页面_第6张图片

没有模板引擎

如果,模板引擎下面,找不到这个错误页面
那么,就会去静态资源文件夹下寻找

Template下面没有error文件夹
那么,就会去静态资源文件夹下寻找error文件夹

以上都没有错误页面
就会默认来到SpringBoot默认的错误提示页面

ModelAndView
errorHtml如果,都没有找到,就会返回null
返回null之后,就会返回一个error视图
Spring boot定制错误页面_第7张图片

ErrorMvcAutoConfiguration

注入了一个errorBean
Spring boot定制错误页面_第8张图片
defaultErrorView
error返回的是defaultErrorView
Spring boot定制错误页面_第9张图片
代码中定义好的一段页面代码

看到的错误页面
就是采用SpelView解析出来的这段代码

<html>
<body><h1>Whitelabel Error Pageh1>
<p>This application has no explicit mapping for /error, so you are seeing this as a fallback.p>
<div id='created'>${timestamp}div>
<div>There was an unexpected error (type=${error}, status=${status}).div>
<div>${message}div>
body>
html>

你可能感兴趣的:(————Spring,Boot)