如何将数组从 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%>;
代码将起作用
请问我在项目中工作,我想在地图上显示许多标记,我想像这段代码一样从 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%>; 代码将起作用