我正在尝试将我的java代码中的字符串传递给javascript,如下所示:
myData.data = "${data.myString}";
如果myString
包含"
我尝试存储一个javascript安全字符串,只是将"
替换为\"
但是当我在我的jsp中使用myString
时,我得到一个丑陋的输出显示\"
而不是"
安全传递字符串的最佳方法是什么,而不是弄乱其余的输出。
答案 0 :(得分:1)
将其编码到JSP中的html:
<input id="test_hide" type="hidden" value="${URIUtil.encodeAll("http://www.google.com?q=a b","UTF-8")}">
然后在JavaScript中:
myData.data = decodeURIComponent(document.getElementById('test_hide').getAttribute('value'));
答案 1 :(得分:0)
用"
替换双引号应该有效
答案 2 :(得分:0)
一个糟糕的解决方案:
检查你的字符串是否有双引号,如果是,则使用
myData.data = '${data.myString}';
如果它包含单引号,请使用
myData.data = "${data.myString}";
如果您同时使用单引号和双引号,则会爆炸。
一个好的解决方案:
只需使用
"