/ / Necessidade de adicionar elementos de uma matriz a uma variável de JavaScript em JSP - javascript, arrays, jsp, jstl

Precisa adicionar elementos de uma matriz a uma variável de JavaScript no JSP - javascript, matrizes, jsp, jstl

Estou criando uma matriz para uma lista de marcadores do mapa do google. O código funciona para um forEach loop, mas preciso adicionar elementos de uma nova matriz à lista também.

Meu código atual mostra a seguinte mensagem de erro em var do resultado2.

  Syntax error on token "var", ;  expected

Código para uma matriz

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> ];

Código para duas matrizes

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>
+"]";

Respostas:

1 para resposta № 1

Primeiro, no seu código para duas matrizes, você não deseja colocar colchetes entre aspas. Isso fará com que todas as matrizes result e result2 ser um Strings.
Segundo, falta o suporte de fechamento para results, falta o suporte de abertura para results2.
Terceiro, você não pode apenas + as matrizes em JavaScript. Há um concat() método para isso.

Tente isto:

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>
]);