1

这是我的代码

<c:set var="initSubjectCategories" value="${requestScope.initSubjectCategories}" scope="page" />
<c:set var="initSubjects" value="${requestScope.initSubjects}" scope="page" />
<c:set var="initRelations" value="${requestScope.initRelations}" scope="page" />
<c:set var="initComplements" value="${requestScope.initComplements}" scope="page" />
<c:set var="initComplementCategories" value="${requestScope.initComplementCategories}" scope="page" />
<c:set var="initTriplets" value="${requestScope.initTriplets}" scope="page" />

var initSubjectCategories = "${requestScope.initSubjectCategories}";
var initComplementCategories = "${requestScope.initComplementCategories}";
var initSubjects = "${requestScope.initSubjects}";
var initComplements = "${requestScope.initComplements}";
var initRelations = "${requestScope.initRelations}";
var initTriplets = "${requestScope.initTriplets}";

问题是,当其中一个字符串包含单引号或双引号时,加载网页时出现错误。

我尝试使用.replace(/"/g, '\"');带有反斜杠的双引号替换双引号,但它什么也没做。我也尝试过encodeURIComponent("${requestScope.initTriplets}"),但它也没有做任何事情。

先感谢您。

4

1 回答 1

0

您需要在服务器端转义这些字符。添加escapeXml="true"到输入标签。

如果你不这样做,它会得到如下输出:

<input value="valwithquo"tes"/>

JavaScript 现在帮助您为时已晚,因为该值是valwithquo(否则是无效的 html)

于 2013-01-20T19:22:11.770 回答