Spring boot 自定义404错误页面 @ControllerAdvice方式

其他错误都会进入到这里,唯有404错误不进来?网上文档文章都说这样玩的,真奇怪。

404页面一直报这个错误,不进入我的自定义设置
**Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sun Jun 03 11:50:14 CST 2018
There was an unexpected error (type=Not Found, status=404).
No message available**

@ControllerAdvice
public class GlobalExceptionHandler {
    private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
    public static final String DEFAULT_ERROR_VIEW = "error/400";

    @ExceptionHandler(value = Exception.class)
    public ModelAndView defaultErrorHandler(HttpServletRequest request, Exception e) {
        logger.info("系统异常", e);
        ModelAndView m = new ModelAndView();
        m.addObject("exception", e);
        m.addObject("url", request.getRequestURL());
        m.setViewName(DEFAULT_ERROR_VIEW);
        return m;
    }
}    

如果配置了,可以捕获404

出现错误时, 直接抛出异常

spring.mvc.throw-exception-if-no-handler-found=true

不要为我们工程中的资源文件建立映射

spring.resources.add-mappings=false

但是css js什么的都无法访问了。

阅读 4.6k
3 个回答
  public static final String DEFAULT_ERROR_VIEW = "error/400";

检查一下路径和页面的位置

新手上路,请多包涵

重新实现 ErrorController 。 百度一下就知道了

默认情况下发送一个不存在的请求、该请求会转发到/${context-path}/error
并且不会被ControllerAdvice拦截

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题