2013-01-20 20 views
1

的时候,这里是我的代码问题与报价转换JSP变量jQuery的

<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}"),但它也没有做到。

预先感谢您。

+0

看来你是试图做转义使用JavaScript,需要做转义服务器 – charlietfl

+0

你能告诉我该怎么做吗? 'request.setAttribute(“initSubjects”,subjectsToShow);' – user1881815

回答

0

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

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

<input value="valwithquo"tes"/> 

太晚了JavaScript来帮助你,因为现在的价值是valwithquo(否则无效HTML)

+0

谢谢,但我怎么能使用C:内部标签的转义XML? 这是行不通的,我收到消息*/WEB-PAGES/Cockpit/cockpit.jsp(行:3,列:0)根据标记文件中的TLD或属性指令,属性值不接受任何表达式* – user1881815