Google 使用 JS 和 JSTL 映射多个标记

Google Maps Multiple Marker with JS and JSTL

answer 在硬编码位置上工作正常,但我想使用我的 <c:forEach var="location" items="${latlng.rows}"> 并使用 <sql:setDataSource> 标记从数据库填充 locations 变量。我的数据库中有 6 行 table 但我只从地图上的数据库中获取最后一个标记。

这是工作正常的硬编码版本:

<script type="text/javascript">
    var locations = [
      ['Bondi Beach', -33.890542, 151.274856, 4],
      ['Coogee Beach', -33.923036, 151.259052, 5],
      ['Cronulla Beach', -34.028249, 151.157507, 3],
      ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
      ['Maroubra Beach', -33.950198, 151.259302, 1]
    ];

.....
</script>

我的代码不起作用:

<script type="text/javascript">
   var locations = [
        <c:forEach var="location" items="${latlng.rows}">
            [<c:out value='${location.name}'/>,
             <c:out value='${location.latitude}'/>, 
             <c:out value='${location.longitude}'/>,
             <c:out value='${location.id}'/> ],
        </c:forEach>        
    ];
.....
</script>

如何让 forEach 项目行的输出像硬编码版本一样工作?

我不知道这是否是正确的答案,但这对我有用,以防其他人遇到同样的问题。

    var locations = [];
        <c:forEach var="location" items="${latlng.rows}">
            locations.push(["${location.name}",
                            "${location.latitude}",
                            "${location.longitude}",
                            "${location.id}"]);
        </c:forEach>