如何将标记数组从 servlet 传递到 JavaScript
how to pass array of markers from servlet to javascript
我想在jsp页面上将标记数组传递给javascript,以便在谷歌地图上显示它们。在servlet中,我从数据库中加载标记数组,但我不知道如何将它们传递给javascript。Thi 是我的仆人
protected void doGet(HttpServletRequest request, HttpServletResponse response) `throws ServletException, IOException {
// TODO Auto-generated method stub`
PlaceDao placeDao = new PlaceDao();
ArrayList<Place> pList = new ArrayList<Place>();
try {
pList = placeDao.readData();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Marker marker = new Marker();
ArrayList<Marker> mList = new ArrayList<Marker>();
for (int i = 0; i < pList.size(); ++i)
{
marker.setLatitude(pList.get(i).getLatitude());
marker.setLongitude(pList.get(i).getLongitude());
mList.add(marker);
}
request.setAttribute("marker", mList);
request.getRequestDispatcher("pages/location.jsp").forward(request, response);
}`
和我的 JSP 页面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
var myCenter = new google.maps.LatLng(51.508742, -0.120850);
function initialize() {
var mapProp = {
center : myCenter,
zoom : 5,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"),
mapProp);
var marker = new google.maps.Marker({
position : myCenter,
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width: 500px; height: 380px;"></div>
</body>
</html>
所以而不是var myCenter = new google.maps.LatLng(51.508742, -0.120850);
我想传递我的数组。我认为这可以用 JSON 完成,但我不确定也不知道如何完成。感谢您的任何帮助!
需要注意的几件事:
- 您无法在 javascript 中读取 Java
List
。 - 您必须以某种方式返回结果才能在javascript(客户端(端访问。
如何在客户端获取列表?
您可以选择以下 2 个选项之一:
-
使用 Ajax 调用(例如(:
$.get( "urlToMethod", { "someVariable": someValue }).done(function( data ) { // in data you have the list of markers }).error(function (data) { // in data you have exception or the error });
爪哇映射:
@RequestMapping(value = "urlToMethod") public String[] getMarkers ( HttpServletRequest httpRequest, HttpServletResponse httpResponse, @RequestParam(value = "someVariable") String someVariable) { // get the markers and return a String[] or JSONArray!!! }
-
将列表放入 JSP 中并在脚本中读取:
Java 端(如有必要,创建
HelperClass
(model.addAttribute("markers", markersList);
爪哇语
markers = $("#markers").val();
.JSP
<form:hidden path="markers" id="markers" />
如何在javascript中读取Java List
:
同样在这里,您可以使用以下任何选项:
- 你不能在javascript中读取列表,但你可以读取
String
或String[]
(不要使用双精度或浮点数作为GPS纬度/长度,因为精度损失(。 - 创建一个标记的 JSONArray,如以下答案所示:
注意:我假设您的项目中有JQuery
,也要小心,因为在 Ajax 解决方案中使用了Spring
,如果您的项目中没有它,请检查此处。
相关文章:
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- Servlet仅在单击JavaScript警报消息后重定向
- 如何区分javascript中的servlet响应
- 为什么我得到responseText(通过Ajax从Servlet到javaScript)和额外的字符
- Servlet对浏览器上显示的纯文本Javascript的响应
- 在javascript中获取servlet值,并使用ajax将该值分配给一个文本框
- 从 Servlet 调用 Javascript 函数
- 从JavaScript到servlet的Ajax调用
- 将servlet请求从javascript发送到java给出了“;请求的资源不可用”;
- 将hashmap从javascript传递到servlet
- 数据库、servlet、json、javascript和highchart饼图
- servlet不工作(也有空指针错误),servlet不能't从javascript中获取值
- javaScript初学者:将数据从java脚本发送到servlet
- 如何在jsp中的javascript函数中从servlet获取json返回
- Java servlet对JavaScript的响应
- 将一个数组从javascript传递到servlet
- 如何在使用servlet处理时使用javascript设置隐藏变量的值
- 当从servlet返回到JSP时,Javascript的变化非常明显
- 从函数从 JavaScript 调用 servlet 的 Ajax 不返回值
- Servlet/Javascript chunking