2012-11-12 46 views
0

如果其中一个字符串包含新行,则使用Spring的机制来填充字符串数组时会出现问题。使用Spring向数组输出数据时出现Javascript错误

JSP代码如下所示:

function foo() { 
    var strs = new Array(); 
    <c:forEach items"${strItems}" var="s"> 
     strs.push("${s}"); 
    </c:forEach> 
} 

被渲染为客户端后,JavaScript是:

function foo() { 
    var strs = new Array(); 
     strs.push("item1"); 
     strs.push("item2 
with 
newlines 
in it."); 
     strs.push("item3"); 
} 

现在是无效的JavaScript。我需要在字符串中保留末尾,所以我无法擦除它们的数据。我不确定要做什么,任何建议都会有很大的帮助。

谢谢。

回答

0

有库做类型转换:

和所有你所要做的就是让他们系列化你的阵列,并输出结果作为串。

+0

这正是我所期待的。没有大惊小怪,没有麻烦。 我刚刚做了转义示例: import org.json.simple.JSONObject; public String getSafeString(){ return JSONObject.escape(myString); } ... – user1628546

+0

为什么不使用'JSONValue.toJSONString(list)'?它更整洁,可能更快。 – xiaoyi