js提交java后台,双引号转义为"解决办法……StringEscapeUtils.unescapeHtml4完美解决

it2024-10-10  41

文章目录

一、 问题现象:1.1. 前台数据1.2.后台数据 二、 解决方案:2.1. maven依赖2.2. 关键代码2.3. 去空格处理

一、 问题现象:
1.1. 前台数据
ryTask.serchData('000000INC20200830000001','2020-10-01','2020-10-21','Project','LSubmitInfo','INC')
1.2.后台数据
ryTask.serchData('000000INC20200830000001','2020-10-01','2020-10-21','Project','LSubmitInfo','INC')

前台json放入form表单文本框提交, 怎么到后台我的双引号"就变了," 左括号变成了( 右括号变成了) 单引号变成了'

二、 解决方案:
2.1. maven依赖
<!--解决前台传递参数转译问题--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.9</version> </dependency>

但是,commons-lang3中的StringEscapeUtils过期了,用下面的依赖代替即可

<!--解决前台传递到后台参数特殊字符转译工具--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>1.1</version> </dependency>
2.2. 关键代码
//将接收到的jsonStr处理一次,就OK了 String newJson = StringEscapeUtils.unescapeHtml4(jsonStr);
2.3. 去空格处理

前台传递过来的数据居然每个参数之间多了空格

public static void main(String[] args) { String str = "ryTask.serchData& #40;& #39;000000INC20200830000001& #39;,& #39; 2020-10-01& #39;,& #39; 2020-10-21& #39;,& #39;Project& #39;,& #39;LSubmitInfo& #39;,& #39;INC& #39;& #41;"; String replace = str.replace(" ", ""); System.out.println(replace); System.out.println(StringEscapeUtils.unescapeHtml4(replace)); // System.out.println(StringEscapeUtils.unescapeHtml4("&#40;&#41;")); }

最后利用java的StringEscapeUtils.unescapeHtml4,成功解决问题

最新回复(0)