需要在JSP中将数组元素添加到JavaScript变量中

时间:2015-06-16 02:01:20

标签: javascript arrays jsp jstl

我正在为谷歌地图的标记列表创建一个数组。该代码适用于一个forEach循环,但我还需要将新数组的元素添加到列表中。

我当前的代码在result2的var上显示以下错误消息。

  Syntax error on token "var", ;  expected

一个数组的代码

var results = [
        <c:forEach var="cus" items="${customer}" varStatus="loop">[
            "${cus.value.name}", "${cus.value.latitude}",
            "${cus.value.longitude}", "${loop.index}",
            "${cus.value.id}"], </c:forEach> ];

两个数组的代码

var results = "[" +
                <c:forEach var="cus" items="${customer}" varStatus="loop">[
                        "${cus.value.name}", "${cus.value.latitude}",
                        "${cus.value.longitude}", "${loop.index}",
                        "${cus.value.id}"], </c:forEach> 

var results2 = results + <c:forEach var="staff" items="${staff}" varStatus="loop"> 
        + "[" +
                  "${staff.value.name}", "${staff.value.latitude}",
                  "${staff.value.longitude}", "${loop.index}",
                  "${staff.value.id}"], </c:forEach> 
        +"]";

1 个答案:

答案 0 :(得分:1)

首先,在您的两个数组的代码中,您不希望在引号中包含方括号。这将使您的整个数组resultresult2成为一个字符串 其次,results缺少右括号,results2缺少左括号 第三,你不能只用+ JavaScript中的数组。有concat()方法。

试试这个:

var results = [
    <c:forEach var="cus" items="${customer}" varStatus="loop">
    [
        "${cus.value.name}",
        "${cus.value.latitude}",
        "${cus.value.longitude}",
        "${loop.index}",
        "${cus.value.id}"
    ],</c:forEach>
];

var results2 = results.concat([
    <c:forEach var="staff" items="${staff}" varStatus="loop">
    [
        "${staff.value.name}",
        "${staff.value.latitude}",
        "${staff.value.longitude}",
        "${loop.index}",
        "${staff.value.id}"
    ],</c:forEach>
]);