SpringBoot 利用thymeleaf自定义错误页面

作者:憧憬 时间:2023-11-29 08:29:55 

导入thymeleaf


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

自定义异常类

建立监听异常类

MyException.class


package com.example.demo.domain;

public class MyException extends RuntimeException {

private int code;

private String msg;

public MyException(int code, String msg) {
   this.code = code;
   this.msg = msg;
 }

public int getCode() {
   return code;
 }

public void setCode(int code) {
   this.code = code;
 }

public String getMsg() {
   return msg;
 }

public void setMsg(String msg) {
   this.msg = msg;
 }
}

CustomExtHandle 监测异常


package com.example.demo.domain;

import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;

@RestControllerAdvice
public class CustomExtHandle {

// 捕获全局异常
 @ExceptionHandler(value = Exception.class)
 Object handleException(Exception e, HttpServletRequest request) {
   Map<String, Object> map = new HashMap<>();
   map.put("code", 100);
   map.put("msg", e.getMessage());
   map.put("url", request.getRequestURL());
   return map;
 }

// 如果是Myexception类
 @ExceptionHandler(value = MyException.class)
 Object handleMyException(MyException e, HttpServletRequest request) {
   ModelAndView modelAndView = new ModelAndView();
   modelAndView.setViewName("error.html"); // 指定错误跳转页面 需要在templates里面新建 一个error.html
   modelAndView.addObject("msg", e.getMsg());
   modelAndView.addObject("code", e.getCode());
   modelAndView.addObject("url", request.getRequestURL());
   return modelAndView;

// 当然这里也可以返回json数据 前后台分离的话直接返回一个json即可
 }
}

template/error.html


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<h1>出异常了</h1>

<span>错误信息:</span><h1 th:text="${msg}"></h1>  // 获取变量
<span>错误状态码:</span><h1 th:text="$[code]"></h1>
<span>失败API地址:</span><h1 th:text="${url}"></h1>
</body>
</html>

使用


@RequestMapping("/user_info")
 public Map<String, String> testMap() {
   throw new MyException(500, "手动抛出");
 }

效果

SpringBoot 利用thymeleaf自定义错误页面

来源:https://aoppp.com/springboot-thymeleaf-zi-ding-yi-cuo-wu-y/

标签:SpringBoot,自定义,错误页面,thymeleaf
0
投稿

猜你喜欢

  • springboot返回前端中文乱码的解决

    2023-08-09 11:49:12
  • Java动态脚本Groovy

    2023-12-05 03:25:50
  • android实现文本复制到剪切板功能(ClipboardManager)

    2023-11-28 17:40:31
  • Java中的functor实现

    2023-11-26 08:30:50
  • C#多线程学习之Thread、ThreadPool、Task、Parallel四者区别

    2023-08-27 05:32:14
  • Windows 10上JDK环境安装配置图文教程

    2023-05-31 19:38:03
  • Java乱码问题解决方法_动力节点Java学院整理

    2021-07-25 01:04:52
  • js事件模型与自定义事件实例解析

    2021-05-26 06:15:06
  • 详细图解Java中字符串的初始化

    2023-11-20 19:34:24
  • Android自定义view实现仿抖音点赞效果

    2021-11-04 11:58:19
  • Java8中Optional操作的实际应用

    2022-04-30 22:52:31
  • Java设计模式之java备忘录模式详解

    2023-08-22 19:31:07
  • Android 如何获取设备唯一标识

    2022-09-03 10:47:48
  • Android检查手机网络状态及网络类型的方法

    2023-12-03 19:35:49
  • 浅谈SpringBoot资源初始化加载的几种方式

    2022-03-09 08:14:34
  • 如何使用JCTools实现Java并发程序

    2023-11-21 07:37:39
  • Kotlin 创建接口或者抽象类的匿名对象实例

    2022-02-02 13:12:23
  • SpringBoot2零基础到精通之数据与页面响应

    2022-08-25 22:26:41
  • Springmvc模式上传和下载与enctype对比

    2022-11-08 09:14:17
  • Java压缩文件ZIP实例代码

    2022-03-25 04:08:27
  • asp之家 软件编程 m.aspxhome.com