SpringBoot自定义全局异常返回页面

返回自定义异常界面,需要引入thymeleaf依赖(非必须,如果是简单的html界面则不用)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

resource目录下新建templates,并新建error.html

application.properties

spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/
# session失效时间,30m表示30分钟
server.servlet.session.timeout=30m

CustomExtHandler.java

package net.cyb.demo.handler;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

/**
 * 标记这是一个异常处理类
 */
@ControllerAdvice
public class CustomExtHandler {
    @ExceptionHandler(value = Exception.class)
    ModelAndView HandlerException(Exception e, HttpServletRequest request){
        ModelAndView modelAndView=new ModelAndView();
        //错误页路径
        modelAndView.setViewName("error.html");
        modelAndView.addObject("msg",e.getMessage());
        return modelAndView;
    }
}

error.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
这个是自定义异常界面
</body>
</html>

SpringBoot自定义全局异常返回页面

上一篇:用ModelAndView返回视图结果返回的是对应RequestMapping拼接的路径


下一篇:全局异常处理区分返回响应类型是页面还是JSON