Springboot入门4-配置异常页面

springboot中,可以使用org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer类来统一的处理异常页面,使用方法如下:

1.添加异常页面:

 

2.自定义错误页面(实现EmbeddedServletContainerCustomizer接口)

//@Configuration(todo:这里为什么加了注释无效,不加反而生效呢)
public class ErrorPageConfig{
    @Bean
    public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
        return new EmbeddedServletContainerCustomizer() {
            @Override
            public void customize(ConfigurableEmbeddedServletContainer container) {
                ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/error/401.html");
                ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/error/404.html");
                ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500.html");
                container.addErrorPages(error401Page, error404Page, error500Page);
            }
        };
    }
}

到这里配置就可以生效了。

 

3.还可以写一个error页面的controller来统一处理异常页面的跳转,需要将上面的配置类改成如下:

@Configuration
public class ErrorPageConfig implements EmbeddedServletContainerCustomizer{
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
        container.addErrorPages(new ErrorPage(HttpStatus.BAD_REQUEST, "/error/400"));
        container.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500"));
        container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/error/404"));
    }
}

其实就是不直接返回页面,而是用controller返回ModelAndView来进行页面跳转,这里controller就不写了。

 

posted @ 2018-01-30 15:07  大象踢足球  阅读(933)  评论(1编辑  收藏  举报