Java后台与js前端之间的通信问题
来源:互联网 发布:mysql中的日期函数 编辑:程序博客网 时间:2024/05/21 18:39
今天写代码遇到一个问题,就是需要在js中获取后台传过来的list集合,还需要对list进行遍历获取里面的对象,首先想到的是将list绑定到request对象上转发到前端,然后用EL表达式直接获取该list集合,可是遍历该list出问题了,因为此时list已经不是集合了,而是字符串,对字符串遍历只能得到单个字符,没法获取里面存储的对象,所以这条路走不通。
然后想到了先将数据传到JSP中,用jstl表达式对其进行遍历,将遍历得到的结果装到一个隐藏的div里面,通过jQuery获取该div里的HTML来间接获取list里的内容,这样做
是可以的,代码如下
这样做的坏处是还得写jstl及div,比较麻烦,然后想到了用json,流程是这样的,在后台先将list集合转化为json字符串,然后绑定到request上转发到前端,在js中直接用EL表达式获取已转化为json字符串的list,在js中json字符串会被自动转化为json对象,这样list就变成了json数组,遍历的时候就比较方便了,获取到json对象后,再根据键就可以取到值了,代码如下:
后台:
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Coord> list=dao.findAll();
//==================================
JSONArray jsonArray2 = JSONArray.fromObject(list);//将集合转换为json格式
String jsonString=jsonArray2.toString();//将json转换为字符串
//==================================
req.setAttribute("list", jsonString);
//请求转发
req.getRequestDispatcher("/baidu.jsp").forward(req, resp);
}
前端js:
var points = new Array();
var list=${list};
for (var i in list) {
var lon=list[i].longitude;//经度
var lat=list[i].latitude;//纬度
points[i]=new BMap.Point(lon,lat);
}
使用JSONArray需要导入包json-lib,在阿里云的maven价包库中坐标为
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.1</version>
<classifier>jdk13</classifier>
</dependency>
导入这个包,与其相关联的包都会导入。
- Java后台与js前端之间的通信问题
- 后台与前端JS的传值交互问题
- Web后台和Android前端之间的网络通信
- 关于ajax中后台与前端之间传json的问题
- 前端与后台之间的数据传递(1)
- 前端与后台之间的数据传递(2)
- 前端与后台之间的数据传递(3-1)
- 前端与后台之间的数据传递(3-2)
- 前端与后台之间的数据传递(3-3)
- 你不可错过的二维码生成与解析-java后台与前端js都有
- JS与AS之间的相互通信
- JS与iOS之间的通信
- JS与iOS之间的通信
- JS与iOS之间的通信
- React Js 与 Native 之间的通信
- RSA AES 前端JS与后台JAVA的加密解密的是实现
- 微信小程序与Java后台的通信
- JSP前台是js,与Java后台通信
- 《DBA 修炼之道》总结一之前言
- SaveDC与RestoreDC
- Spring MVC学习指南(11-12章总结)
- C++创建链表
- dfs实现单源点最短路径求解
- Java后台与js前端之间的通信问题
- 选择音视频SDK解决方案的标准技术
- Graphics2渲染图像导出的3种方式
- 机器学习实战(Machine Learning in Action)参考答案以及原始数据
- 【每周论文】Xen and the Art of Virtualization
- linux 链接器 库打桩
- python爬虫备忘(6)
- jquery遍历集合$each()使用方法
- Some Example For C++