Spring Boot-配置错误页面(404、500等)

在项目中为了友好化,对于错误页面,我们常常会使用自定义的页面。SSM框架组合时代,我们通常通过拦截或者在web.xml中设置对于错误码的错误页面:

<error-page>
    <error-code>404</error-code>
    <location>/error/404.jsp</location>
</error-page>

然而到了SpringBoot,web.xml消失了,SpringBootServletInitializer初始化servlet代替了web.xml。难道要再把web.xml加回去?这样虽然可以做到,但并不合理。下面提供了多种在SpringBoot中实现自定义错误页面的方法。

 

通过ErrorPageRegistrar实现

配置类要实现ErrorPageRegistrar类,并且要注入到容器中:

@Component
public class MyError implements ErrorPageRegistrar {
    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        /*1、按错误的类型显示错误的网页*/
        /*错误类型为404,找不到网页的,默认显示404.html网页*/
        ErrorPage e404 = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
        /*错误类型为500,表示服务器响应错误,默认显示500.html网页*/
        ErrorPage e500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
        /*2、按具体某个异常显示错误的网页*/
        /*当某个异常即可以根据错误类型显示错误网页,由可以根据某个具体的异常来显示错误网页时,优先根据具体的某个异常显示错误的网页*/
        ErrorPage argsException = new ErrorPage(IllegalArgumentException.class, "/args.html");
        registry.addErrorPages(e404, e500,argsException);
    }
}

在ErrorPageRegistrar我们注册了根据不同的请求响应错误类型显示不同的网页,也可以根据异常类型来显示错误网页,下面我们写一个Controller来测试这些错误页面有没有显示出来:

@Controller
public class ErrorTestController {

    /*一、把错误抛在页面上
     * 1.错误异常自定义在org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration.class中。*/
    @RequestMapping("/error")
    /*抛出参数不合法的异常到页面*/
    public String erro(){
        throw new IllegalArgumentException("arg is empty");
    }
}

浏览器访问http://127.0.0.1:8080/erro2

è¿éåå¾çæè¿°

浏览器访问http://127.0.0.1:8080/errotest1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值