ajax传递list集合
原文链接:https://blog.csdn.net/qq_37936542/article/details/79277495
一:ajax传递List<String>类型的数据
js代码:
- //声明list
- var _list = [];
- //放入string对象
- for (var i = 0; i < 3; i++) {
- _list[i]="tom";
- }
- $.ajax({
- url : '/ajax/test',
- data : "list="+_list,
- type : "POST",
- success : function(data) {
- alert(data);
- }
- });
java代码:
- @RequestMapping(value="test",method=RequestMethod.POST)
- @ResponseBody
- public String ajaxList(@RequestParam("list")List<String> strList){
- for (String str : strList) {
- System.out.println(str);
- }
- return "OK";
- }
二:ajax传递List<Obj>类型的数据
后台需要用到json解析工具,我选得是jackson
导入jackson依赖:
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.7.3</version>
- </dependency>
js代码:
- //声明list
- var _list = [];
- //创建两个user对象
- var a= {};
- a.name="tom";
- a.age=23;
- a.city="上海";
- var b = {};
- b.name="jack";
- b.age=25;
- a.city="安徽";
- //将user放入_list
- _list.push(a);
- _list.push(b);
- $.ajax({
- url : '/ajax/test1',
- data : "list="+JSON.stringify(_list),
- type : "POST",
- success : function(data) {
- alert(data);
- }
- });
java代码:
- @RequestMapping(value="test",method=RequestMethod.POST)
- @ResponseBody
- public String ajaxList(@RequestParam("list")String userList) throws Exception{
- //jackson对象
- ObjectMapper mapper = new ObjectMapper();
- //使用jackson将json转为List<User>
- JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);
- List<User> list = (List<User>)mapper.readValue(userList, jt);
- return "OK";
- }
三:当ajax传递任何复杂参数时,后台可以直接从流中来读取数据进行解析
js代码:
- //声明list
- var _list = [];
- //创建两个user对象
- var a= {};
- a.name="tom";
- a.age=23;
- a.city="上海";
- var b = {};
- b.name="jack";
- b.age=25;
- a.city="安徽";
- //将user放入_list
- _list.push(a);
- _list.push(b);
- $.ajax({
- url : '/querz/test',
- data : JSON.stringify(_list),//这里需要json化
- type : "POST",
- success : function(data) {
- alert(data);
- }
- });
java代码:
- @RequestMapping(value="test",method=RequestMethod.POST)
- @ResponseBody
- public String ajaxList(HttpServletRequest request) throws Exception{
- //从流中读取数据
- BufferedReader br = request.getReader();
- String str = "";
- StringBuffer sb = new StringBuffer();
- while((str = br.readLine()) != null){
- sb.append(str);
- }
- ObjectMapper mapper = new ObjectMapper();
- //使用jackson解析数据
- JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);
- List<User> list = (List<User>)mapper.readValue(sb.toString(), jt);
- System.out.println(list);
- return "OK";
- }
文末福利:
福利一:前端,Java,产品经理,微信小程序,Python等10G资源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程序入门与实战全套详细视频教程
【领取方法】
关注 【编程微刊】微信公众号:
回复【小程序demo】一键领取130个微信小程序源码demo资源。
回复【领取资源】一键领取前端,Java,产品经理,微信小程序,Python等资源合集10G资源大放送。
90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。
ajax传递list集合的更多相关文章
- SpringMVC,SpringBoot使用ajax传递对象集合/数组到后台
假设有一个bean名叫TestPOJO. 1.使用ajax从前台传递一个对象数组/集合到后台. 前台ajax写法: var testPOJO=new Array(); //这里组装testPOJO数组 ...
- 原生态ajax 传递json参数到服务器端
案例说明:通过ajax将用户名和密码以json形式传递给服务器端,然后服务器端接受数据,进行处理返回json数据到前端 首先,在客户端,通过JavaScript脚本将页面表单数据封装成JSON格式.L ...
- 怎么通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端?
今天在论坛上看到这样一个问题,有必要编辑搜集下. 问题描述:怎么通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端 题主用jquery接收 <input name= ...
- 后台接受ajax传递值的实例代码
后台接受ajax传递值的实例代码: 使用ajax可以实现无刷新数据交互,下面是一段后台代码接收ajax传递值的实例代码供需要的朋友参考,希望能够带来帮助. ajax代码如下: $(function ( ...
- ASP.NET jquery ajax传递参数
第一种:GET传递 前台 ajax GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低 后台接收:Request.QueryString[“参数名字”]! 例如: func ...
- servlet向ajax传递list数据类型,ajax向servlet传递array数据类型
因工作需要, 1,后台向前台传递一个list 2,前台向后台传递类似于list的结构,但是因为javascript不支持list类型,所以只能使用二维数组代替 后台运行后的截图: ...
- jquery ajax传递数组给php
写成:var data = {'item[]':item}; $.post(url,data,function(return_data) 写成item:item会导致数据缺失. 更多:http://w ...
- 小笔记(一):ajax传递数组及将ajax返回数据赋值
当使用ajax传递数据时,有可能传递多个数据,这是使用以下方法传递数据就会显得数据过多且混杂 $.ajax({ type:'post', url:url, data:{data:data,conten ...
- jQuery ajax传递特殊字符串问题
当你用ajax传递值到服务器端,如果值中包含特殊字符串如+,&等,在服务器端获取的结果可能就会出现差异,因为这些字符有其它用途,如“+”表示连接符,在转义后你获取到的就是空格.可以看看这些特殊 ...
随机推荐
- golang中new和make区别
golang 中有两个内存分配机制 :new和make,二者有明显区别. new:用来初始化一个对象,并且返回该对象的首地址.其自身是一个指针.可用于初始化任何类型 make:返回一个初始化的实例,返 ...
- Maven搭建hadoop环境报Missing artifact jdk.tools:jdk.tools:jar:1.7
今天,更新了工程,报错了. 项目中用了HBase,也有Hadoop相关的jar配置. pom文件, Missing artifact jdk.tools:jdk.tools:jar:1.7 Maven ...
- shell脚本中的反引号,单引号,双引号与反斜杠
转自:http://blog.sina.com.cn/s/blog_6561ca8c0102we2i.html 反引号位 (`)经常被忽略,而且容易与单引号弄混.它位于键盘的Tab键的上方.1键的左方 ...
- vue 键盘回车事件导致页面刷新的问题,路由多了一个问号
问题: <el-form @submit.native.prevent> <el-form-item > <el-input @keyup.enter.native=&q ...
- Java Web学习总结(11)——Session使用示例教程
一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...
- (入门整理学习一)Asp.net core
1.安装.net code SDK,vs Code;vs code c#插件可在软件扩展 (我网盘有) vs2015上安装教程:http://www.cnblogs.com/wangrudong00 ...
- Cscope how to support java and c++
Cscope 首先在文件夹下建立cscope索引文件 find -name '*.c' > cscope.file cscope -Rbkq 这个命令会生成三个文件:cscope.out, cs ...
- amazeui学习笔记--css(HTML元素3)--表单Form
amazeui学习笔记--css(HTML元素3)--表单Form 一.总结 1.form样式使用:在容器上添加 .am-form class,容器里的子元素才会应用 Amaze UI 定义的样式. ...
- TPS54232-------电源管理芯片
TPS54232 DC DC开关稳压器 电源管理芯片 放大器俗称功放 注意看芯片的次序1~8是如何排布的,这个规律一般是固定的 也许我们整理多了就能发现引脚的宽度和长度都是规格好的. 下面是封装: 所 ...
- 火狐与IE的7个JavaScript差异
作者注:本篇文章发表于2009.04.27,是一篇关于讨论Javascript在IE6.IE7和FF2+.FF3.0之间的存在的问题的文章. 虽然须要用冗长的JavaScript代码去识别特定的浏览器 ...