spring boot下 500 404 错误页面处理的方法

网友投稿 286 2023-05-25


spring boot下 500 404 错误页面处理的方法

spring boot 作为微服务的便捷框架,在错误页面处理上也有一些新的处理,不同于之前的spring mvc 500的页面处理是比较简单的,用java config或者xml的形式,定义如下的bean即可

class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

pages/403

pages/403

pages/locked

pages/500

KyhFoUSzNy

class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

pages/403

pages/403

pages/locked

pages/500

KyhFoUSzNy

404就比较特殊了,有2种方法可以参考:

1. 先设置dispatcherServlet

@Bean

public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {

ServletRegistrationBean registration = new ServletRegistrationBean(

dispatcherServlet);

dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);

return registration;

}

再增加处理错误页面的handler,加上@ControllerAdvice 注解

@ControllerAdvice

public class GlobalControllerExceptionHandler {

public static final String DEFAULT_ERROR_VIEW = "pages/404";

@ExceptionHandler(value = NoHandlerFoundException.class)

public ModelAnKyhFoUSzNydView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {

ModelAndView mav = new ModelAndView();

mav.addObject("exception", e);

mav.addObject("url", req.getRequestURL());

mav.setViewName(DEFAULT_ERROR_VIEW);

return mav;

}

}

不过上面这种处理方法,会造成对js,css等资源的过滤,最好使用第二种方法

2. 集成ErrorController

@Controller

public class MainsiteErrorController implements ErrorController {

private static final String ERROR_PATH = "/error";

@RequestMapping(value=ERROR_PATH)

public String handleError(){

return "pages/404";

}

@Override

public String getErrorPath() {

// TODO Auto-generated method stub

return ERROR_PATH;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring Data JPA 复杂/多条件组合分页查询
下一篇:详解Springboot自定义异常处理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~