情景再现
正常编写模板数据,我的模板是一个sql格式的,里面有大于号小于号之类的,发现了前端传的是 >
,到后台接收的时候直接变成了 >
一看就知道肯定是转义上出问题了。
-
前端传值调试
-
后端接收调试
解决思路
想办法把前台传过来的转义字符再转回来。
- 我这里用的方法比较简单,就这一个地方需要这样操作,直接再转换回来即可。
import org.apache.commons.lang3.StringEscapeUtils;
data.setDictValue(StringEscapeUtils.unescapeHtml4(data.getDictValue()));
-
当然如果项目中比较多处需要这样操作,可以写成自定义注解的形式,去处理需要转义的地方
-
还有在拦截器里面统一进行反转义操作,不推荐这种做法会比较消耗程序的性能,除非是整个项目大部分都是需要这样的操作