我有一个jstl文件,其中包含一个javascript代码段。
<res:useJS target="exec-js">
new current.myfunction({
my_arg:{
<c:forEach items="${arguments.value}" var="dataresults" varStatus="loopcount">
<c:out value="\"${dataresults}\" ${!loopcount.last ? ', ' : ']'}"/>
</c:forEach>
});
<res:useJS>
但是当我运行它时,我得到一个错误,说“无效的属性id”,当我看到内容时 - 这样的事情已经通过了。 "data_res1","data_res1",
。我需要在结果中使用双引号,因为这是我在javascript函数中解析它的方式。关于如何做到这一点的任何想法?
答案 0 :(得分:0)
<c:out>
将特殊字符转换为HTML实体以防止注入。
您可以使用Apache commons中的StringEscapeUtils.escapeJavaScript来转义字符串,然后使用
输出普通值"${escapedText}" ${!loopcount.last ? ', ' : ']'}