spring boot下 500 404 错误页面处理的方法
springboot作为微服务的便捷框架,在错误页面处理上也有一些新的处理,不同于之前的springmvc500的页面处理是比较简单的,用javaconfig或者xml的形式,定义如下的bean即可
pages/403 pages/403 pages/locked pages/500
404就比较特殊了,有2种方法可以参考:
1.先设置dispatcherServlet
@Bean publicServletRegistrationBeandispatcherRegistration(DispatcherServletdispatcherServlet){ ServletRegistrationBeanregistration=newServletRegistrationBean( dispatcherServlet); dispatcherServlet.setThrowExceptionIfNoHandlerFound(true); returnregistration; }
再增加处理错误页面的handler,加上@ControllerAdvice注解
@ControllerAdvice publicclassGlobalControllerExceptionHandler{ publicstaticfinalStringDEFAULT_ERROR_VIEW="pages/404"; @ExceptionHandler(value=NoHandlerFoundException.class) publicModelAndViewdefaultErrorHandler(HttpServletRequestreq,Exceptione)throwsException{ ModelAndViewmav=newModelAndView(); mav.addObject("exception",e); mav.addObject("url",req.getRequestURL()); mav.setViewName(DEFAULT_ERROR_VIEW); returnmav; } }
不过上面这种处理方法,会造成对js,css等资源的过滤,最好使用第二种方法
2.集成ErrorController
@Controller publicclassMainsiteErrorControllerimplementsErrorController{ privatestaticfinalStringERROR_PATH="/error"; @RequestMapping(value=ERROR_PATH) publicStringhandleError(){ return"pages/404"; } @Override publicStringgetErrorPath(){ //TODOAuto-generatedmethodstub returnERROR_PATH; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。