You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

提交含%字符的输入至Thymeleaf后端时抛出转义异常的问题咨询

异常触发原因

该异常的核心触发原因是URI二次解码,完整链路如下:

  1. 前端通过encodeURIComponent编码后,输入的%被转为符合规范的%25
  2. 应用服务器(如Tomcat)或Spring MVC解析请求参数时,会执行第一次URI解码,把%25还原为原始的%
  3. 低版本thymeleaf-spring5组件存在设计缺陷,在SpringRequestUtils.checkViewNameNotInRequest方法中会对请求参数执行第二次不必要的URI解码,此时单独存在的%会被识别为不合法的不完整转义序列,直接抛出对应异常。

可行解决方案

  • 方案1:升级Thymeleaf相关依赖版本,官方在thymeleaf-spring5 3.0.12.RELEASE及以上版本修复了该不必要的二次解码逻辑,是成本最低的解决方案
  • 方案2:新增Servlet过滤器,在请求进入Thymeleaf视图渲染逻辑之前,对请求参数中存在的单独%提前编码为%25,避免二次解码时触发异常
  • 方案3:后端新增参数校验逻辑,对包含非法URI转义序列的输入提前拦截,返回友好的业务错误提示,阻止请求进入Thymeleaf渲染流程
  • 方案4:如果对应接口是数据接口不需要返回页面,可在Controller方法上添加@ResponseBody注解,直接返回数据不走Thymeleaf视图解析流程,不会触发该解码异常

内容的提问来源于stack exchange,提问作者Newboz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:24:03