jsp开发中使用javascript传递反斜杠\或者百分号%的方法
在实际开发中,遇到一个问题,问题重现如下:
1.在使用 jstl 循环展示数据的时候,其中某一个${var.CHEMICALS_NAME} 的数据为:杀生剥离剂\SS121/三氯异氰尿酸/固体/≥90%
其中goCDetails函数的效果 就是 alert 一下。
如图所示,传给 goCDetails函数的数据为:goCDetails("杀生剥离剂\SS121/三氯异氰尿酸/固体/≥90%"),我们执行函数时发现:
SS121前面的 反斜杠 没有了!!! 由于反斜杠属于特殊字符,并且后面没有数字,无法转义,就会消失了,但是我们又需要这个反斜杠。
解决办法如下:
1.在 jsp页面最顶 加入
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
2.在代码循环展示时,即数据传递以前,使用el语句 替换字符串中的反斜杠 \ 为 %5C
这里需要注意一下,如果后面函数接收到数据后不做处理,只是alert的话,替换成一个%5C就可以,但是如果后面函数接收到数据后要进行传递处理的话,一定要替换成 %5C%5C !
3. js函数接收到数据后,在传递时 还需要再进行一次替换。(我把百分号也给替换了)
这样的话,我们来看一下效果:
并且带有 反斜杠\ 和 百分号% 的字符串 数据也已经传送到了后台。
OK,大功告成。