在我的servlet中:
String[] array = {"apple", "ball", "cat"};
req.setAttribute("myArray", array);
在javascript中:
var x = '${myArray}';
alert(x.length); //prints 28
alert('${myArray[0]}'); //prints apple
alert(x) //prints [Ljava.lang.String;@267c3c78
如何在不使用json的情况下获取数组对象,以便循环使用它?是我唯一的选择json和xml?
答案 0 :(得分:2)
您可以使用<c:forEach>
但由于Java在服务器端运行,因此它只会帮助您生成可用于JavaScript的纯文本。通过了解这一点,您可以创建一个JavaScript字符串数组,如下所示:
<script type="text/javascript">
var myJavaScriptArray = [
<c:forEach items="${myArray}" var="elem" varStatus="currentStatus">
"${elem}"
<c:if test="${not currentStatus.last}">
,
</c:if>
</c:forEach>
];
</script>
上面的代码尚未测试。
答案 1 :(得分:2)
您可以像这样
将数组分配给javascript变量<script>
var x = [
<c:forEach var="item" items="${myArray}" varStatus="loop">
"${item}"
<c:if test="${!loop.last}">,</c:if>
</c:forEach>
]
<script>
或者如果你想避免它,那么从服务器端传递javascript数组的正确表示。 Arrays.toString()
会有所帮助。