- 默认情况下,Spring Boot提供/error处理所有错误的映射。
- 如果是浏览器请求URL错误,返回错误页面;如果是postman等非浏览器客户端请求URL错误,返回 json 数据。
浏览器客户端
机器客户端
- 要对其进行自定义,添加View解析为error;
- error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html;如果都没有就触发白页。
- 注意:
html文件要引入模板引擎;
拦截器放开静态资源;
如果在 templates/error 目录下有自定义的 4xx 或 5xx 页面,则使用此页面;
如果templates/error 目录下没有自定义的错误页面:在 static/error 目录下寻找 4xx 或 5xx 页面,如果找到则使用;
如果 templates/error目录和 static/error目录都没有自定义的 4xx 或 5xx 页面 ,则使用 SpringBoot默认的错误页面
3、源码@Controller @RequestMapping({"${server.error.path:${error.path:/error}}"}) public class BasicErrorController extends AbstractErrorController { // 浏览器: @RequestMapping( produces = {"text/html"} ) public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) { HttpStatus status = this.getStatus(request); // 在这里填充返回的属性值 Mapmodel = Collections.unmodifiableMap(this.getErrorAttributes(request, this.isIncludeStackTrace(request, MediaType.TEXT_HTML))); response.setStatus(status.value()); // 在这里填充返回的页面 ModelAndView modelAndView = this.resolveErrorView(request, response, status, model); return modelAndView != null ? modelAndView : new ModelAndView("error", model); } // 其他客户端: @RequestMapping public ResponseEntity
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)