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}";

問題は、これらの文字列の 1 つに単純引用符または二重引用符が含まれていると、Web ページをロードするときにエラーが発生することです。

.replace(/"/g, '\"');二重引用符を二重引用符でアンチスラッシュに置き換えるために使用しようとしましたが、何もしませんでした。私も試しencodeURIComponent("${requestScope.initTriplets}")ましたが、何もしませんでした。

前もって感謝します。

4

1 に答える 1

0

サーバー側でこれらの文字をエスケープする必要があります。escapeXml="true"入力タグに追加します。

これを行わないと、次のような出力が得られます。

<input value="valwithquo"tes"/>

valwithquo値が(そうでなければ無効な html) であるため、JavaScript があなたを助けるには遅すぎます。

于 2013-01-20T19:22:11.770 に答える