如何将数组从 jsp 转换为 javascript

how can to convert array from jsp to javascript

请问我在项目中工作,我想在地图上显示许多标记,我想像这段代码一样从 jsp 显示 arr[][] 到 javascrpit, 请我在项目中工作,我想在地图上显示许多标记,我想显示 arr[][] 从 jsp 到 javascrpit 就像这段代码 例如: 我想替换此代码:

 for (var i = 0; i < 3; i++) {

         var marker = new google.maps.Marker({
             position: new google.maps.LatLng( 17.088291,78.442383 ),
             map: map,
         });

至:

for (var i = 0; i < 3; i++) {

         var marker = new google.maps.Marker({
             position: new google.maps.LatLng( arr[i][0],arr[i][1] ),
             map: map,
          });

<!DOCTYPE html>

<html>
<head>
<script     src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD4DvaNOnpTRUFASvy6lyY0DDVcfXytvnY&libraries=places&&callback=initMap">
</script>
<script>
<%!
double arr[][]= new double[3][2];
%>
    <%
 arr[0][0]=19.088291;
 arr[0][1]= 78.442383;
arr[1][0]=18.088291;
arr[1][1]=78.442383;
arr[2][0]=17.088291;
arr[2][1]=78.442383;


    %>
function loadMap() {
var mapOptions = {
center:new google.maps.LatLng(19.373341, 78.662109),
zoom:7
}

var map=new google.maps.Map(document.getElementById("sample"),mapOptions);

//animation:google.maps.Animation.BOUNCE
 for (var i = 0; i < 3; i++) {

         var marker = new google.maps.Marker({
position: new google.maps.LatLng( 17.088291,78.442383 ),
map: map,
});

        }
}
</script>
</head>
<body onload="loadMap()">
<div id="sample" style="width:580px;height:400px;"></div>
</body>
</html>

我想你有两个选择:

一个。在循环中使用 out.print,我认为您已经尝试过但忘记了一些非常重要的东西 - <%%>

所以最后一行代码应该是这样的:

new google.maps.LatLng(<% out.print(arr[i][0]); %>, <% out.print(arr[i][1]); %>

乙。将整个 JSP 数组转换为 JSON 并解码回来。虽然不是最简单的解决方案,但在外部服务等许多地方都很有用。您可以使用像 Gson 这样的库。

简单的答案 在 jsp 代码中添加这一行 String json = new Gson().toJson(array);

并在 javascript 中添加这一行 var arr=<%=json%>; 代码将起作用