前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring boot中自定义错误提示页面

spring boot中自定义错误提示页面

作者头像
猿天地
发布2018-04-03 12:40:24
1.5K0
发布2018-04-03 12:40:24
举报
文章被收录于专栏:猿天地猿天地

当程序出错的时候,比如500错误,当用户输入的url错误时会找不到网页。

在这种情况下如果用默认的错误页面非常不友好。

一般我们都需要定制一些错误的页面。

在普通的web项目中很简单,直接配置web.xml就可以了。

代码语言:javascript
复制
<error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/view/404.jsp</location>
</error-page>
<error-page>
    <error-code>400</error-code>
    <location>/WEB-INF/view/400.jsp</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/WEB-INF/view/500.jsp</location>
</error-page>

今天我介绍的是在spring boot中如何使用自己的错误页面。

因为boot中是没有web.xml这个文件的,所以我们需要使用java config的方式来实现。

当发生异常时转发到不同的页面

代码语言:javascript
复制
@Configuration
public class ErrorConfiguration {

    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {    
        return new EmbeddedServletContainerCustomizer(){        
             @Override        
             public void customize(ConfigurableEmbeddedServletContainer container) {            
                container.addErrorPages(new ErrorPage(HttpStatus.BAD_REQUEST, "/400"));            
                container.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500"));            
                container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404"));        
            }    
        };
    }

}

定义页面

代码语言:javascript
复制
/**
 * 自定义错误页面覆盖spring boot中的错误页面
 * @author yinjihuan
 *
 */
@Controller
public class ErrorController {

    @GetMapping("/400")
    public String badRequest() {
        return "error/400";
    }

    @GetMapping("/404")
    public String notFound() {
        return "error/404";
    }

    @GetMapping("/500")
    public String serverError() {
        return "error/500";
    }
}

页面内容可以自己写

代码语言:javascript
复制
<body>
    <section id="error" class="container text-center" style="height:800px;">
        <h1>404, 页面没有找到</h1>
        <p>您正在寻找的页面不存在或发生其他错误。</p>
        <a class="btn btn-primary" href="http://pan.cxytiandi.com">回到网站首页</a> 
    </section>
</body>

当你输入的页面找不到时就会出现一个你自己定制的页面 下面是效果图

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猿天地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 当发生异常时转发到不同的页面
  • 定义页面
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档