我有一个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”,当我查看内容时-这样的信息已经传递。 &#034;data_res1&#034,&#034;data_res1&#34,。我需要在结果中使用双引号,因为这就是我在javascript函数中对其进行解析的方式。关于如何做到这一点的任何想法?

最佳答案

<c:out>将特殊字符转换为HTML实体,以防止注入。

您可以使用Apache commons中的StringEscapeUtils.escapeJavaScript来转义字符串,然后使用以下命令输出纯值

"${escapedText}" ${!loopcount.last ? ', ' : ']'}

关于javascript - javascript逸出错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9543119/

10-11 14:15