原文链接:https://blog.csdn.net/qq_37936542/article/details/79277495

一:ajax传递List<String>类型的数据

js代码:

  1. //声明list
  2. var _list = [];
  3. //放入string对象
  4. for (var i = 0; i < 3; i++) {
  5. _list[i]="tom";
  6. }
  7. $.ajax({
  8. url : '/ajax/test',
  9. data : "list="+_list,
  10. type : "POST",
  11. success : function(data) {
  12. alert(data);
  13. }
  14. });

java代码:

  1. @RequestMapping(value="test",method=RequestMethod.POST)
  2. @ResponseBody
  3. public String ajaxList(@RequestParam("list")List<String> strList){
  4. for (String str : strList) {
  5. System.out.println(str);
  6. }
  7. return "OK";
  8. }

二:ajax传递List<Obj>类型的数据

后台需要用到json解析工具,我选得是jackson

导入jackson依赖:

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-databind</artifactId>
  4. <version>2.7.3</version>
  5. </dependency>

js代码:

  1. //声明list
  2. var _list = [];
  3. //创建两个user对象
  4. var a= {};
  5. a.name="tom";
  6. a.age=23;
  7. a.city="上海";
  8. var b = {};
  9. b.name="jack";
  10. b.age=25;
  11. a.city="安徽";
  12. //将user放入_list
  13. _list.push(a);
  14. _list.push(b);
  15. $.ajax({
  16. url : '/ajax/test1',
  17. data : "list="+JSON.stringify(_list),
  18. type : "POST",
  19. success : function(data) {
  20. alert(data);
  21. }
  22. });

java代码:

  1. @RequestMapping(value="test",method=RequestMethod.POST)
  2. @ResponseBody
  3. public String ajaxList(@RequestParam("list")String userList) throws Exception{
  4. //jackson对象
  5. ObjectMapper mapper = new ObjectMapper();
  6. //使用jackson将json转为List<User>
  7. JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);
  8. List<User> list =  (List<User>)mapper.readValue(userList, jt);
  9. return "OK";
  10. }

三:当ajax传递任何复杂参数时,后台可以直接从流中来读取数据进行解析

js代码:

  1. //声明list
  2. var _list = [];
  3. //创建两个user对象
  4. var a= {};
  5. a.name="tom";
  6. a.age=23;
  7. a.city="上海";
  8. var b = {};
  9. b.name="jack";
  10. b.age=25;
  11. a.city="安徽";
  12. //将user放入_list
  13. _list.push(a);
  14. _list.push(b);
  15. $.ajax({
  16. url : '/querz/test',
  17. data : JSON.stringify(_list),//这里需要json化
  18. type : "POST",
  19. success : function(data) {
  20. alert(data);
  21. }
  22. });

java代码:

  1. @RequestMapping(value="test",method=RequestMethod.POST)
  2. @ResponseBody
  3. public String ajaxList(HttpServletRequest request) throws Exception{
  4. //从流中读取数据
  5. BufferedReader br = request.getReader();
  6. String str = "";
  7. StringBuffer sb = new StringBuffer();
  8. while((str = br.readLine()) != null){
  9. sb.append(str);
  10. }
  11. ObjectMapper mapper = new ObjectMapper();
  12. //使用jackson解析数据
  13. JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);
  14. List<User> list =  (List<User>)mapper.readValue(sb.toString(), jt);
  15. System.out.println(list);
  16. return "OK";
  17. }

文末福利:

福利一:前端,Java,产品经理,微信小程序,Python等10G资源合集大放送:https://www.jianshu.com/p/e8197d4d9880

福利二:微信小程序入门与实战全套详细视频教程

【领取方法】

关注 【编程微刊】微信公众号:

回复【小程序demo】一键领取130个微信小程序源码demo资源。

回复【领取资源】一键领取前端,Java,产品经理,微信小程序,Python等资源合集10G资源大放送。



90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

ajax传递list集合的更多相关文章

  1. SpringMVC,SpringBoot使用ajax传递对象集合/数组到后台

    假设有一个bean名叫TestPOJO. 1.使用ajax从前台传递一个对象数组/集合到后台. 前台ajax写法: var testPOJO=new Array(); //这里组装testPOJO数组 ...

  2. 原生态ajax 传递json参数到服务器端

    案例说明:通过ajax将用户名和密码以json形式传递给服务器端,然后服务器端接受数据,进行处理返回json数据到前端 首先,在客户端,通过JavaScript脚本将页面表单数据封装成JSON格式.L ...

  3. 怎么通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端?

    今天在论坛上看到这样一个问题,有必要编辑搜集下. 问题描述:怎么通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端 题主用jquery接收 <input name= ...

  4. 后台接受ajax传递值的实例代码

    后台接受ajax传递值的实例代码: 使用ajax可以实现无刷新数据交互,下面是一段后台代码接收ajax传递值的实例代码供需要的朋友参考,希望能够带来帮助. ajax代码如下: $(function ( ...

  5. ASP.NET jquery ajax传递参数

    第一种:GET传递 前台 ajax   GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低 后台接收:Request.QueryString[“参数名字”]! 例如: func ...

  6. servlet向ajax传递list数据类型,ajax向servlet传递array数据类型

    因工作需要, 1,后台向前台传递一个list 2,前台向后台传递类似于list的结构,但是因为javascript不支持list类型,所以只能使用二维数组代替 后台运行后的截图:           ...

  7. jquery ajax传递数组给php

    写成:var data = {'item[]':item}; $.post(url,data,function(return_data) 写成item:item会导致数据缺失. 更多:http://w ...

  8. 小笔记(一):ajax传递数组及将ajax返回数据赋值

    当使用ajax传递数据时,有可能传递多个数据,这是使用以下方法传递数据就会显得数据过多且混杂 $.ajax({ type:'post', url:url, data:{data:data,conten ...

  9. jQuery ajax传递特殊字符串问题

    当你用ajax传递值到服务器端,如果值中包含特殊字符串如+,&等,在服务器端获取的结果可能就会出现差异,因为这些字符有其它用途,如“+”表示连接符,在转义后你获取到的就是空格.可以看看这些特殊 ...

随机推荐

  1. TypeScript基础知识

    一. TypeScript是js的超集,可以应用所有js语法 二. 特点: 1. 优点 a. 可以在编译阶段就发现大部分错误,这总比在运行时候出错好 b. 同一目录下不同文件中,使用统一命名,会有命名 ...

  2. Angularjs: 封装layDate指令

    [摘要]由于业务需要,将bootstrap-datetimepicker改成了layDate. layDate是一个较成熟且便于操作的jQuery日期插件,支持同一个视图内范围选择.封装成一个指令在多 ...

  3. Appium_python3 抓取客户端toast

    在客户端登录或者退出登录的时候会有吐司提示,因此需要抓取来验证用户登录成功或者注销成功: 在获取toast之前需要添加   desired_caps['automationName'] = 'Uiau ...

  4. LiveReload配置,安装使用方法~~~前端页面神助手

    一.Chrome端安装LiveReload插件 1.首先这里啰嗦一下,如果Chrome无法进入商店,可以先安装一下谷歌商店助手 谷歌商店插件地址 http://pan.baidu.com/s/1dF1 ...

  5. 【C语言】编写函数实现库函数atoi,把字符串转换成整形

    //编写函数实现库函数atoi.把字符串转换成整形 #include <stdio.h> #include <string.h> int my_atoi(const char ...

  6. 阿里一道Java并发面试题 (详细分析篇)

    说明 前天分享了一篇关于阿里的"Java常见疑惑和陷阱"的文章,有人说这个很早就有了,可能我才注意到,看完之后发现内容非常不错,有几个我也是需要停顿下想想,如果后续有机会我录制一个 ...

  7. session 、cookie、token的区别及联系

    本文转自:https://blog.csdn.net/jikeehuang/article/details/51488020:https://blog.csdn.net/weixin_37196194 ...

  8. hadoop 2.4.1 集群安装二

    1:创建文件夹 [jifeng@feng01 hadoop]$ mkdir tmp [jifeng@feng01 hadoop]$ mkdir name [jifeng@feng01 hadoop]$ ...

  9. css结构设计思想

    本文摘自博客园-予沁安的文章:结构化CSS设计思维,作为学习笔记记录一下 1.LESS.SASS等预处理器给CSS开发带来了语法的灵活和便利,其本身却没有给我们带来结构化设计思维.很少有人讨论CSS的 ...

  10. SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能

    SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...