欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot的错误页面配置

程序员文章站 2022-06-03 17:58:34
...

springboot的错误页面配置

可以在代码中配置一个错误页面的配置类,代码如下:


package com.fyq.bootDeveloper.config;

import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.servlet.ErrorPage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;

/**
 * 错误页面的配置
 */
@Configuration
public class ErrorPagesConfig {
    @Bean	//此注解一定记住要加上,别忘记
    public EmbeddedServletContainerCustomizer containerCustomizer(){
        return new EmbeddedServletContainerCustomizer() {
            @Override
            public void customize(ConfigurableEmbeddedServletContainer container) {
                                                        //状态码               错误页面的存储路径
                ErrorPage errorPage400 = new ErrorPage(HttpStatus.BAD_REQUEST, "/error-400.html");
                ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND, "/error-404.html");
                ErrorPage errorPage500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error-500.html");
//...可自己一个一个的补全
                container.addErrorPages(errorPage400,errorPage404,errorPage500);
            }
        };
    }
}

如果你有自己设计一个错误编码和错误信息的Exception,定义为MyException extends RuntimeException,

哪里会出错throw MyException

然后配置一个Controller 

使用@ControllerAdvice做统一异常处理:

@ControllerAdvice
public class MyExceptionHandler {
    @ExceptionHandler(value = MyException.class)
    public String MyExceptionHandler(){
        return "error";

    }
}
如果要返回一些错误码和错误信息,你就加个Model model ,错误页面接收一下就行了。