假设有一个bean名叫TestPOJO。

1、使用ajax从前台传递一个对象数组/集合到后台。

前台ajax写法:

  1. var testPOJO=new Array();
  2. //这里组装testPOJO数组
  3. $.ajax({
  4. url:“testController/testPOJOs”,
  5. data:JSON.stringify(testPOJO),
  6. type:"post",
  7. dataType:"json",
  8. contentType:"application/json",
  9. success:function (res) {
  10. },
  11. error:function(msg){
  12. }
  13. });

后台接收方法:

  1. @RestController
  2. @RequestMapping("testController")
  3. public class testController {
  4.  
  5.   @RequestMapping("/testPOJOs")
  6.   //如果类的注解是@Controller,那么方法上面还需要加@ResponseBody,因为@ResTController=@Controller+@ResponseBody
  7.   public String testPOJOs (@RequestBody TestPOJO [] testPOJO) {
  8. //操作
  9.   }
  10.  
  11.   //或者下面这个
  12.   //@RequestMapping("/testPOJOs")
  13.   //public String testPOJOs (@RequestBody List<TestPOJO> testPOJO) {
  14. //操作
  15.   //}
  16. }

无论是几维数组,前后台保持一致就行了。

2、传递Map

前台ajax写法:

  1. var testMap={
  2. "a":"aaa",
  3. "b":[1,2,3]
  4. };
  5. $.ajax({
  6. url:“testController/testMap”,
  7. data:JSON.stringify(testMap),
  8. type:"post",
  9. dataType:"json",
  10. contentType:"application/json",
  11. success:function (res) {
  12. },
  13. error:function(msg){
  14. }
  15. });

后台接收方法:

  1. @RestController
  2. @RequestMapping("testController")
  3. public class testController {
  4.  
  5.   @RequestMapping("/testMap")
  6.   public String testMap (@RequestBody Map<String,Object> map) {
  7. String a = (String) map.get("a");
  8. List<Integer> b = (List<Integer>) map.get("b");
  9. ...
  10.   }
  11. }

3、除了传递对象集合,还需要传递其他字段。

前台ajax写法:

  1. var testPOJO=new Array();
  2. //这里组装testPOJO数组
  3. $.ajax({
  4. url:“testController/testPOJOs”,
  5. data:{
  6. strs”: JSON.stringify(testPOJO),
  7. others”,”…”
  8.   },
  9. type:"post",
  10. dataType:"json",
  11. success:function (res) {
  12. },
  13. error:function(msg){
  14. }
  15. });

后台接收方法:

  1. @RestController
  2. @RequestMapping("testController ")
  3. public class testController {
  4.  
  5.   @RequestMapping("/testPOJOs")
  6.   public String testPOJOs (String strs,String others) {
  7.  
  8. //操作使用fastjson进行字符串对象转换
  9.  
  10.      List<TestPOJO> list=new ArrayList<>();
  11.  
  12. JSONObject json =new JSONObject();
  13.  
  14. JSONArray jsonArray= JSONArray.parseArray(strs);
  15.  
  16. for(int i=0;i<jsonArray.size();i++){
  17.  
  18.   JSONObject jsonResult = jsonArray.getJSONObject(i);
  19.  
  20.   TestPOJO testPOJO=JSONObject.toJavaObject(jsonResult,TestPOJO.class);
  21.  
  22. list.add(testPOJO);
  23. }
  24. //其他操作
  25.   }
  26. } 

或者直接把others和testPOJO数组重新组合一个新数组var arr=[testPOJO,”others的内容”],“strs”: JSON.stringify(arr),只传递一个strs字段就可以,然后后台转换。

4、传递一个数组

前台ajax写法:

  1. $.ajax({
  2. url: 'testController/listByxxx',
  3. data: {
  4. "xxxs":xs//xs是一个数组
  5. },
  6. type: "post",
  7. dataType: "json",
  8. success: function (res) {}
  9. });

后台接收方法:

  1. @RestController
  2. @RequestMapping("testController")
  3. public class testController {
  4. @RequestMapping("/listByxxx")
  5. public String listByxxx(@RequestParam(value = "xxxs[]")String[] xxxs){
  6. //操作
  7. }
  8. }

@RequestBody一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据。在GET请求中,不能使用@RequestBody。在POST请求,可以使用@RequestBody和@RequestParam。

SpringMVC,SpringBoot使用ajax传递对象集合/数组到后台的更多相关文章

  1. ajax传对象或者数组到后端

    ajax是无法直接传送对象或者数组,有些人自己处理的话,能够把数据依照自己的标准连接成一个字符串,然后到后端处理.可是数据的不确定性.导致有可能会出错.并且麻烦 事实上有开源的包,能够直接解释成jso ...

  2. ajax传递list集合

    原文链接:https://blog.csdn.net/qq_37936542/article/details/79277495 一:ajax传递List<String>类型的数据 js代码 ...

  3. jquery ajax传递多个对象或数组到后台

    1.js对象创建:因为需要把对象json序列化后,才能传递到后台,后台根据json字符串进行反序列化. 2.Jquery   $.ajax方法的配置 针对$.ajax方法的配置参数需要进行修改: 1) ...

  4. springMVC中使用ajax传递json数组

    解决方法 去www.json.org下载JSON2.js 再调用JSON.stringify(JSONData)将JSON对象转化为JSON串. var people = [{ "UserN ...

  5. ajax传递对象数组

    1.Json.stringify()是将json数据格式转换成String类型字符串的方法. 后台可以使用String类型接受,接收完可以使用json转换java集合的方法. List<实体类& ...

  6. 一个实例 ---灵活使用jquery选择器实现input一个key,多个value 。 用ajax传递对象到后台控制器

    标题可能不是很清晰,我们看实例: 简单来说就是需要实现sku的功能...一件商品可以有多个属性, 一个属性可以有多个值  . 最后以json格式存到数据库 难点一: 如何实现input输入框的弹性使用 ...

  7. SpringBoot RequestBody ajax提交对象

    前端实现: var student = { "name":1, "age":2, "score":3 }; $.ajax({ url:&qu ...

  8. ajax传递对象到MVC控制器

    1.view层中ajax写法: function Add2() { var model = new Object(); model.UserName = $('#UserName').val(); m ...

  9. asp.net ajax传递Json给aspx.cs后台 webmethod方法传递json

    1.提取一个向后台写入数据的方法 ///向后台cs页面请求数据的方法 function myPost(url,data,func) { $.ajax({ type: "post", ...

随机推荐

  1. querySelector与getElementBy的区别

    1,querySelector() 方法返回匹配指定 CSS 选择器元素的第一个子元素 . 该方法只返回匹配指定选择器的第一个元素.如果要返回所有匹配元素,需要使用 querySelectorAll( ...

  2. tcpdump我的交叉编译(mips)

    一.libpcap交叉编译 1.下载libpcap-1.8.1(http://www.tcpdump.org/) 2.解压 3.修改configure文件 a.注释掉 #if test -z &quo ...

  3. linux和shell的学习记录

    1.16条常用的命令 .文件的权限修改:(把文件1.txt的归属改为mysql的,然后ll查看) chown mysql:mysql .txt .增加当前用户的x权限,然后ll查看: chomd u+ ...

  4. zipkin链路追踪

    zipkin架构说明 zipkin api 我想自己搞一些满足zipkin格式的日志,入库es,然后让zipkin仅做展示 1.需要了解zipkin组件 2,学习zipkin设计原理,何时何地产生日志 ...

  5. minikube windows hyperx填坑记

    minikube windows hyperx填坑记 安装了一天半,还是没行,先放弃 开始 minikube start --vm-driver=hyperv --hyperv-virtual-swi ...

  6. tp5命令行

    手册->命令行->自定义命令行 1.第一步,配置command.php文件 2.第二步,建立命令类文件 注意:该文件中代码,从文档中粘,以防写错. 名字啥的都不用改,就改命名空间 和 定义 ...

  7. MATLAB绘制函数图

    序言 Matlab可以根据用户给出的数据绘制相应的函数图.对于单个2D函数图,需要给出一个行向量x作为函数图上离散点集的横坐标,以及一个与x列数一样的横坐标y作为函数图上点集的纵坐标. 向量x和y的取 ...

  8. Cocos Creator JS 时间戳日期转换

    /*** 时间戳换算日期* */function formatDateTime (timeStamp) { var date = new Date(); date.setTime(timeStamp ...

  9. 006-CSS引入外部字体

    我们制作页面css,设置字体,可能会需要加入一些比较特殊的字体,这时候就需要引入这些字体. 方法如下: @font-face { font-family: KuTang;/*定义字体的名字*/ src ...

  10. [macOS] finder变慢提速

    原文地址:http://ntfs-formac.com/fix-slow-finder-macos-sierra/ 我采取的是第二种方法,够简单,直接在终端执行 rm ~/Library/Caches ...