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;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。