情景再现

正常编写模板数据,我的模板是一个sql格式的,里面有大于号小于号之类的,发现了前端传的是 > ,到后台接收的时候直接变成了 > 一看就知道肯定是转义上出问题了。

  • 前端传值调试 001.png

  • 后端接收调试 002.png

解决思路

想办法把前台传过来的转义字符再转回来。

  1. 我这里用的方法比较简单,就这一个地方需要这样操作,直接再转换回来即可。
import org.apache.commons.lang3.StringEscapeUtils;

data.setDictValue(StringEscapeUtils.unescapeHtml4(data.getDictValue()));
  1. 当然如果项目中比较多处需要这样操作,可以写成自定义注解的形式,去处理需要转义的地方

  2. 还有在拦截器里面统一进行反转义操作,不推荐这种做法会比较消耗程序的性能,除非是整个项目大部分都是需要这样的操作

成功

003.png