返回自定义异常界面,需要引入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" xmlns:th="http://www.thjymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
这个是自定义异常界面
<p th:text="${msg}"></p>
</body>
</html>
