SpringBoot 利用thymeleaf自定义错误页面

 更新时间:2020年11月25日 10:15:17   作者:憧憬  
这篇文章主要介绍了SpringBoot 利用thymeleaf自定义错误页面,帮助大家更好的理解和使用springboot 框架,感兴趣的朋友可以了解下

导入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自定义错误页面的详细内容,更多关于SpringBoot 自定义错误页面的资料请关注脚本之家其它相关文章!

相关文章

  • 教你怎么用idea创建web项目

    教你怎么用idea创建web项目

    好多朋友在使用IDEA创建项目时,总会碰到一些小问题.现在我们就演示一下使用IDEA创建web项目的完整步骤吧.文中有非常详细的图文示例哦,,需要的朋友可以参考下
    2021-05-05
  • springData使用QueryDsl的示例代码

    springData使用QueryDsl的示例代码

    这篇文章主要介绍了springData使用QueryDsl的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • springboot实现mock平台的示例代码

    springboot实现mock平台的示例代码

    本文主要介绍了springboot实现mock平台的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Java中的CyclicBarrier循环栅栏详解

    Java中的CyclicBarrier循环栅栏详解

    这篇文章主要介绍了Java中的CyclicBarrier循环栅栏详解,CyclicBarrier循环栅栏是用来进行线程协作,等待线程满足某个计数,构造时设置计数个数,每个线程执行到某个需要“同步”的时刻调用 await()方法进行等待,当等待的线程数满足计数个数时,继续执行,需要的朋友可以参考下
    2023-12-12
  • 详解servlet的url-pattern匹配规则

    详解servlet的url-pattern匹配规则

    本篇文章主要介绍了=servlet的url-pattern匹配规则,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 详解springboot中的jar包部署步骤

    详解springboot中的jar包部署步骤

    这篇文章主要介绍了springboot中的jar包部署步骤及linux中部署项目常用指令,需要的朋友可以参考下
    2018-07-07
  • SpringBoot+Vue实现数据添加功能

    SpringBoot+Vue实现数据添加功能

    这篇文章主要介绍了SpringBoot+Vue实现数据添加功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Activiti流程图查看实例

    Activiti流程图查看实例

    这篇文章主要介绍了Activiti流程图查看实例,需要的朋友可以参考下
    2014-08-08
  • Java 实战项目之诚途旅游系统的实现流程

    Java 实战项目之诚途旅游系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SpringBoot+Vue+maven+Mysql实现一个精美的物流管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Springboot使用Spring Data JPA实现数据库操作

    Springboot使用Spring Data JPA实现数据库操作

    Spring Data JPA 是 Spring 基于 Spring Data 框架、在JPA 规范的基础上开发的一个框架,使用 Spring Data JPA 可以极大地简化JPA 的写法,本章我们将详细介绍在Springboot中使用 Spring Data JPA 来实现对数据库的操作
    2021-06-06

最新评论