SpringBoot 拦截org.thymeleaf.exceptions.TemplateInputException异常
SpringBoot 拦截thymeleaf异常
org.thymeleaf.exceptions.TemplateInputException
异常
org.thymeleaf.exceptions.TemplateProcessingE
xception: Could not parse as each: "message : xxx " (template: “xxxx” - line xx, col xx)
thymeleaf异常复现
你是故意的,还是不小心的 ----我是故意的
成功拦截,使用自定义试图,捕获主要信息,减去一大推报错代码,只显示正常信息,显得优雅
为什么不生效
首先应该知道 @ControllerAdvice
是拦截不成功的,百世(试)不得其姐(解),正常来说,异常是会走下面这一行代码的
@ControllerAdvice
public class SysGlobalExceptionHandler<T> extends BasicController<Class<?>>{@ExceptionHandler(Exception.class)public ResponseEntity<Object> exception(Throwable e) {// 处理异常return ResponseEntity.status(this.response.getStatus()).body("Exception未定义异常" + e.getMessage());}
}
但是他是不正常的(因为拦截不到),为什么,我也不知道,但是AI是这么说的:@ControllerAdvice
只能处理通过控制器抛出的异常,并不能处理其他组件抛出的异常。如果需要处理其他组件的异常,需要使用其他的异常处理机制。
听君一席话,如菜鸟开大
怎么实现拦截生效呢
当然是重新实现 ErrorController
接口了
public Object errorHandle(){//判断状态码是500if (this.response.getStatus() == HttpStatus.INTERNAL_SERVER_ERROR.value()) {// 获取异常信息Throwable throwable = (Throwable) request.getAttribute("javax.servlet.error.exception");// 判断是不是模板异常if (throwable.getCause() instanceof TemplateInputException) {//这里其实也可以是TemplateInputException,throwable.getCause() instanceof TemplateInputException也可以是TemplateProcessingException,最终都是抛出TemplateProcessingException异常TemplateProcessingException templateProcessingException = (TemplateProcessingException) throwable.getCause();ParseException parseException = (ParseException) templateProcessingException.getCause();//这里就是自定义逻辑了this.msgFormat("模板出现异常 %s ", parseException.getLocalizedMessage());modelAndView.setViewName("err");// return this.Output(throwable.getClass());//return ResponseEntity.status(this.response.getStatus()).body(parseException.getLocalizedMessage());}
}// this.response就是抛出原来的结果,就比如你写的逻辑没有成功拦截到500状态码的其他异常,是啥就显示啥
return this.response;}
这样就完成实现拦截到thymeleaf的异常,@ControllerAdvice
处理不了的异常可以使用ErrorController
来处理,耶稣也拦不住,鲁某说的
有很多东西是后知后觉的,一年前我可能不知道怎么处理,只能去处理业务,避免出现这种异常,时间久了,好多知识点就慢慢领悟了。(多动手)
相关文章:
SpringBoot 拦截org.thymeleaf.exceptions.TemplateInputException异常
SpringBoot 拦截thymeleaf异常 org.thymeleaf.exceptions.TemplateInputException异常 org.thymeleaf.exceptions.TemplateProcessingE xception: Could not parse as each: "message : xxx " (template: “xxxx” - line xx, col xx) thymeleaf异常复现 你是故意的…...
Qt之随机数
介绍使用qsrand和qrand生成随机数。 生成随机数 生成随机数主要用到了函数qsrand和qrand,qsrand用来设置种子点,该种子为qrand生成随机数的起始值。如果不调用qsrand,那么qrand()就会自动调用qsrand(1),即系统默认将1作为随机数的起始值。使…...
UWB学习——day2
UWB应用 基于上文UWB学习——day1中对UWB技术的相关优势介绍,UWB技术可广泛应用于以下场景。 WPAN(无线个域网) 基于其高精度(亚厘米级)、低功耗和高穿透性等特征,在以人为基础的个域网中应用广泛&#…...
使用 multiprocessing 多进程处理批量数据
示例代码 import multiprocessingdef process_data(data):# 这里是处理单个数据的过程return data * 2# 待处理的数据 data [1, 2, 3, 4, 5]def normal_func():# 普通处理方式result []for obj in data:result.append(process_data(obj)return resultdef parallel_func():# …...
React 与 TS 结合使用时组件传参总结
在学习 React 时,我们总会遇到在 TS 和 JS 之间切换来开发多个项目,而有时会忘记 TS 的语法,所以编写一下 React 结合 TS 开发时的一些总结知识点,以便后续回顾用。 向组件传递基础参数(字符串、数字和布尔值…...
性能炸裂c++20协程+iocp/epoll,超轻量高性能异步库开发实战
前言: c20出来有一段时间了。其中一大功能就是终于支持协程了(c作为行业大哥大级别的语言,居然到C20才开始支持协程,我也是无力吐槽了,让多少人等了多少年,等了多少青春)但千呼万唤他终于还是来…...
自定义Dynamics 365实施和发布业务解决方案 - 4. 自动化业务流程
本章的主要重点是研究拟议应用程序的关键业务流程的自动化。每个组织每天都有自己独特的业务操作,这些操作是业务的关键部分。有些自动化的业务流程不需要用户交互,有些流程需要用户交互。此外,在某些业务流程中,某些用户操作完成,然后触发自动化流程来完成业务流程。 Dy…...
Lua03——开发环境搭建
1 安装开发插件 在 idea 或 vscode 中安装 lua 的开发插件 EmmyLua 2 创建工程 在 idea 中创建一个新的工程 工程的类型选择 lua 输入工程名及目标目录 在工程结构的SDK中设置lua在本地安装目录 在工程结构的modules中选择 lua 3 编写第一个lua程序 在工程下添加程序包&#…...
Redis 非关系型数据库 配置与优化
关系数据库与非关系型数据库 关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的语言&#x…...
docker笔记8:Docker网络
1.是什么 1.1 docker不启动,默认网络情况 ens33 lo virbr0 在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡:它还有一个固定的默认IP地址192.168.122…...
C# 共享项目的应用
概述 共享项目也可以称为共享资产项目,它允许在多个目标项目之间共享的代码。 它支持编译器指令,可以有条件地包含特定于平台的代码,以便编译为引用共享项目的项目的子集。 还有 IDE 支持,可帮助管理编译器指令并直观显示代码在每个应用程序中的外观。 什么是共享项目? …...
Linux之基于HTTPS的静态网站
目录 Linux之基于HTTPS的静态网站 定义 SSL协议 使用Apachemod_ssl组件的加密认证网站 mod_ssl模组 安装 配置文件 ssl配置文件的主要参数 案例 案例1 --- 搭建HTTPSSL的加密认证的web服务器 案例2 --- 组建多个子目录的网站www.joker.com,该网站下有2个子…...
ChatGPT在机器人护理和老年人支持中的潜在角色如何?
机器人在护理和老年人支持领域有着巨大的潜力,可以提供多种服务和支持,改善老年人的生活质量,并减轻护理工作者和家庭成员的负担。在这篇文章中,我将探讨机器人在这一领域的潜在角色,包括其应用、优势和挑战。 ## 1. …...
LeetCode:261. 以图判树 - Python
261. 以图判树 问题描述: 给定从 0 到 n-1 标号的 n 个结点,和一个无向边列表(每条边以结点对来表示),请编写一个函数用来判断这些边是否能够形成一个合法有效的树结构。 示例 1: 输入:n 5, …...
Linux目录结构和远程使用
目录名作用根目录 ‘/’文件系统结构的起始点/root系统管理员的工作目录/home普通用户工作目录/bin存放二进制可执行文件,存放最经常使用的命令/sbin系统管理员使用的系统管理程序/boot启动linux时使用的一些核心文件/dev设备文件,包括块设备和字符设备/…...
淘宝销量展示方式变更背后的逻辑
淘宝销量展示方式发生了调整,平台于8月16日将商品详情销量展示表达由【月销**件】全部换成展示【已售**件】,将30天销量改成了近365天销量。 【已售**件】统计口径:统计近365天支付的商品件数,数据更新请关注24-48小时。其中涉及销…...
Bytebase 和 GitLab 签署 Technology Partner 技术合作伙伴协议
Bytebase 和 GitLab 签署技术合作伙伴协议,携手为开发者提供流畅的数据库协作开发和管理体验。 GitLab 是世界领先的开源 AI 驱动 DevSecOps 平台,旨在帮助开发者团队更好协作、更高效交付软件。Bytebase 是一款为 DevOps 团队准备的数据库 CI/CD 工具&a…...
杭州高职画室哪家好?如何选择高职画室?高职美术学习选哪家画室?
随着越来越多的画室开始涉足高职美术培训,根据杭州高职画室的美术学生及其家长所知,由于普通高中和高职联考之间存在巨大差异,因此许多普通高中的画室的高职班并未取得太大的成功。因此,小编为正在寻找画室的你提供介绍࿱…...
原型模式简介
概念: 原型模式 (Prototype Pattern)是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而无需依赖于昂贵的实例化过程。该模式基于原型实例生成新的对象,并且可以根据需要进行修改和定制。 特点: 通过克隆…...
SpringMVC(一)
1.SpringMVC简介 1.1 什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专门存储业务逻辑的,如Student、Us…...
树的基本概念和存储结构
一、树的基本概念 1、树的定义 树是n(n>0)个结点的有限集。当n 0时,称为空树。在任意一棵非空树中应满足: 1、有且仅有一个特定的称为根的结点。 2、当n>1时,其余节点可分为m(m>0)…...
深圳企业制作宣传片群体定位的重要性
相信众多企业都拍了自己公司的宣传片,尤其是在互联网高度发达的今天,宣传片可以说成为了我们企业对外宣传最主要的方式。看着企业多样式的宣传片种类,我们该如何评价一部宣传片的好坏呢?要知道宣传片的好坏是一个相对主观的问题&a…...
2309亚当arsd的11.1版本
原文 arsd11.1 Minigui 调整主题 在11.0中略有修改Minigui的主题,但它落后于11.1的计划.这是个重大更改,但这些更改很小. 新主题稍微变浅了默认组件的背景色和默认字体,这两者都主要影响Linux,因为窗口上的大多数组件一般使用本地主题. 更改状态栏 现有的状态栏类允许添加…...
spring---第七篇
系列文章目录 文章目录 系列文章目录一、什么是bean的自动装配,有哪些方式?一、什么是bean的自动装配,有哪些方式? 开启自动装配,只需要在xml配置文件中定义“autowire”属性。 <bean id="cutomer" class="com.xxx.xxx.Customer" autowire="…...
编程要搞明白的东西(二)
文章目录 一、简介二、面向对象编程基础2.1 面向对象编程概述2.2 类和对象2.2.1 类的定义和特点2.2.2 对象的创建和使用 2.3 封装、继承与多态的关系2.3.1 封装的概念和优势2.3.2 继承的概念和作用2.3.3 多态的概念和实现方式 三、封装3.1 封装的定义和原则3.2 封装的实现方法3…...
检索与毒害 —— 对抗人工智能供应链攻击
作者:DAVE ERICKSON 在这篇文章中,了解人工智能大语言模型的供应链漏洞,以及如何利用搜索引擎的人工智能检索技术来对抗人工智能的错误信息和故意篡改。 虽然对于人工智能研究人员来说可能是新鲜事,但供应链攻击对于网络安全世界…...
Linux 禁止用户或 IP通过 SSH 登录
Linux 禁止用户或 IP通过 SSH 登录 限制用户 SSH 登录 1.只允许指定用户进行登录(白名单): 在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下: AllowUsers aliyun test@192.168.1.1 # 允许 aliyun 和从 19…...
14.Redis 主从复制
Redis 主从复制 redis 主从复制配置 redis 主从复制启动 redis 主从复制断开 redis 主从复制主从复制构特点主从复制的拓扑结构一主一从⼀主多从树状主从 主从复制原理数据同步psync 运行流程全量复制流程部分复制流程实时复制 关于从节点何时晋升成主节点总结 redis 主从复制 …...
常见的图像格式介绍:RAW、RGB、YUV
常见的图像格式有RAW、RGB、YUV这三大类 1. RAW raw图像指的是sensor输出的原始数据,常见的有8位、10位、12位之分,分别表示一个像素点所占的字节数为8bit、10bit、12bit。 raw数据常见的有四种Bayer模式:GRBG、RGGB、BGGR(下图…...
极简极速-Bitset (bitmap)实现考勤打卡场景
文章目录 1. redis命令行操作bitmap2. RedisTemplate操作bitmap3. Java中的Bitset 1. redis命令行操作bitmap 2. RedisTemplate操作bitmap bitmap的常见业务场景主要有日活统计(类似的月考勤)、点赞、BloomFilter等,以用户mj考勤统计为例&am…...
wordpress 统计代码添加/朝阳seo推广
平台 RK3288 Android 7.1 问题 在测试Thread.sleep过程中发现, 当App进入后台后, 服务中的Thread.sleep会有不同程度的精确度丢失. 测试sleep 2ms, 当置于后台时, 实际延迟达到 [10 - 40] ms 相关测试代码: |-- AndroidManifest.xml <applicationandroid:allowBackup&…...
重庆定制型网站建设/广东深圳疫情最新消息今天
文章目录文件包含漏洞php文件包含漏洞本地包含Local File Include(LFI)远程包含Remote File Include(RFI)包含图片马apache包含日志php伪协议-filterphp伪协议-inputdata伪协议file伪协议phar伪协议zip伪协议文件包含漏洞 程序开发时可能会有一段代码重复使用,为了…...
怎么做软文网站/网址最全的浏览器
长沙理工大学考试试题………………………………………………………………………………………………………试卷编号 1 拟题教研室(或教师)签名张丹教研室主任签名………………………………………………………………………………………………………课程名称(含档次)计算机在经济管…...
ssm实战项目网站开发/爱站seo工具包
ASP.NET MVC设计实例前文我们介绍了MVC设计模式实现基本原理及组成,其基本组成主要包括控制器、视图、模板等部分。目前绝大多数Web端程序设计语言已经支持MVC设计模式,进行Web应用程序开发,本文主要以ASP.NET为例对MVC模式显示进行简单说明。…...
用javaweb做购物网站/一台电脑赚钱的门路
学习网络渗透技术是一件靠兴趣驱动的事情,只有强烈热爱一件事才能持之以恒的去做,对于那些三分钟热度的人来说还是劝你放弃吧,因为网络渗透技术自学需要很多方面的知识,没耐心是无法学会的,当然除了有想要学习的决心之…...
如何搭建一个网站步骤/什么是引流推广
1.jquerymobile的引用 略 2.引用后,页面跳转后,自己的js无法执行,需刷新。解决:在上个页面链接跳转出加:data-ajax"false" 3.data-prefetch"false"的使用转载于:https://www.cnblogs.com/wuchao/a…...