目录
二、在resources/public/目录下创建error文件夹。并创建5xx.html
1.方式一:使用springboot默认的异常处理页面
一、引入依赖
<!--引入freemarker begin-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!--引入freemarker end-->
二、在resources/public/目录下创建error文件夹。并创建5xx.html
5xx.html默认会处理所有以5开头的异常,xx必须是小写的。其他的不需要再设置,springboot已经默认设置好了,同时你也可以定义4xx.html或者404.html等。
验证:
package com.example._05freemarker;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Package: com.example._05freemarker
* @ClassName: FreemarkerController
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/4 21:59
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
@Controller
public class FreemarkerController {
@RequestMapping("/freemarkerPage")
public String freemarkerPage(Model model) {
int i = 1 / 0;
model.addAttribute("name", "zhangsan");
return "hellofreemarker";
}
}
访问:http://localhost:8084/citic/freemarkerPage
新建异常处理器 ErrorController
package com.example._05freemarker;/**
* @Package: com._06handleError
* @ClassName: ErrorController
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/4 22:24
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.method.HandlerMethod;
/**
* @Package: com._06handleError
* @ClassName: ErrorController
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/4 22:24
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
@ControllerAdvice
public class ErrorController {
@ExceptionHandler(Exception.class)
public String errorHandle(Exception ex, HandlerMethod method) {
System.out.println("======统一异常处理======");
System.out.println(ex.getMessage());
System.out.println(method.getBean().getClass());
System.out.println(method.getMethod().getName());
return "404";
}
}
此时还可以结合freemarker返回页面。在templates新建404.ftl文件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>自定义404 freemarker页面</h1>
</body>
</html>