我正在尝试将我的 java 代码中的字符串传递给 javascript,如下所示:
myData.data = "${data.myString}";
如果myString
包含一个"
我尝试存储一个javascript安全字符串,只是替换"
为,\"
但是当我myString
在我的jsp中使用时,我得到一个丑陋的输出,\"
显示而不是"
安全传递字符串而不弄乱我的其余输出的最佳方法是什么。
我正在尝试将我的 java 代码中的字符串传递给 javascript,如下所示:
myData.data = "${data.myString}";
如果myString
包含一个"
我尝试存储一个javascript安全字符串,只是替换"
为,\"
但是当我myString
在我的jsp中使用时,我得到一个丑陋的输出,\"
显示而不是"
安全传递字符串而不弄乱我的其余输出的最佳方法是什么。
将其编码到 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'));
Replacing the double quotes with "
should work
一个糟糕的解决方案:
检查您的字符串是否有双引号,如果是,则使用
myData.data = '${data.myString}';
如果它包含单引号使用
myData.data = "${data.myString}";
如果您同时使用单引号和双引号,这将爆炸。
一个很好的解决方案:
只需使用
"