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

假设有一个bean名叫TestPOJO。

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

前台ajax写法:

var testPOJO=new Array();

//这里组装testPOJO数组

$.ajax({
    url:“testController/testPOJOs”,
    data:JSON.stringify(testPOJO),
    type:"post",
    dataType:"json",
    contentType:"application/json",
    success:function (res) {
    },
    error:function(msg){
    }
});

后台接收方法:

@RestController
@RequestMapping("testController ")
public class testController {

@RequestMapping("/testPOJOs")

//如果类的注解是@Controller,那么方法上面还需要加@ResponseBody,因为@ResTController=@Controller+@ResponseBody
public String testPOJOs (@RequestBody TestPOJO [] testPOJO) {

       //操作

}

//或者下面这个

//@RequestMapping("/testPOJOs")
//public String testPOJOs (@RequestBody List<TestPOJO> testPOJO) {

       //操作

//}

}

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

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

前台ajax写法:

var testPOJO=new Array();

//这里组装testPOJO数组

$.ajax({
    url:“testController/testPOJOs”,
    data:{
        “strs”: JSON.stringify(testPOJO),
        “others”,”…”
  },
    type:"post",
    dataType:"json",
    success:function (res) {
    },
    error:function(msg){
    }
});

后台接收方法:

@RestController
@RequestMapping("testController ")
public class testController {

  @RequestMapping("/testPOJOs")
  public String testPOJOs (String strs,String others) {

       //操作使用fastjson进行字符串对象转换

     List<TestPOJO> list=new ArrayList<>();

        JSONObject json =new JSONObject();

        JSONArray jsonArray= JSONArray.parseArray(strs);

        for(int i=0;i<jsonArray.size();i++){

            JSONObject jsonResult = jsonArray.getJSONObject(i);

        TestPOJO testPOJO=JSONObject.toJavaObject(jsonResult,TestPOJO.class);

            list.add(testPOJO);
        }
              //其他操作
  }
}

  

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

原文地址:https://www.cnblogs.com/jinghun/p/10397089.html

时间: 2024-09-29 16:15:23

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

Ajax传递二维数组至后台ThinkPHP控制器

最近为单位做了专家库的小程序,没个专家有擅长的领域,这是通过一个checkbox来提交和编辑的.因为不想刷新页面,使用Ajax异步传输. 首先从专业数据表中读取所有的专业,并且生成checkbox: $(document).ready(function(){ $.ajax({ type:"POST", url:"http://localhost/yibu/index.php/Home/Expertadd/expertecho",//对应控制器读取专业列表 succe

ajax传对象或者数组到后端

ajax是无法直接传送对象或者数组,有些人自己处理的话,能够把数据依照自己的标准连接成一个字符串,然后到后端处理.可是数据的不确定性.导致有可能会出错.并且麻烦 事实上有开源的包,能够直接解释成json字符串,来传送到后端的 all=JSON.stringify(all_addr); 后端php处理非常easy json_decode($_POST['all']) js处理的包 http://download.csdn.net/detail/q279838089/7617005

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

1.js对象创建:因为需要把对象json序列化后,才能传递到后台,后台根据json字符串进行反序列化. 2.Jquery   $.ajax方法的配置 针对$.ajax方法的配置参数需要进行修改: 1)dataType: "json", traditional:true:数据类型必须是json.默认的话,traditional为false,即jquery会深度序列化参数对象.但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化 2)这个是重点

ajax传递对象到MVC控制器

1.view层中ajax写法: function Add2() { var model = new Object(); model.UserName = $('#UserName').val(); model.Age = 20; model.ID = 1; //提交 $.ajax({ contentType: "application/json", //必须有,表示提交的数据类型 type: "post", url: ' @ViewBag.WebApiUrl/Cla

springmvc,通过ajax方式提交页面数据,后台返回json数据中文信息乱码

本人刚开始接触springmvc,项目搭建参照https://my.oschina.net/gaussik/blog/385697.在用IDEA写登录注册的时候,想通过ajax方式提交数据到后台,然后遇到如题所述的乱码问题,然后度娘了好多,终于解决了.废话不多说,直接上代码. 首先是登录页面login.jsp 1 <%-- 2 Created by IntelliJ IDEA. 3 User: PENG027 4 Date: 2016/11/11 5 Time: 15:48 6 To chang

Ajax 如何提交集合到mvc后台

1,前端请求如下 1 var apply = { CompanyName: $("[name='corpName']").val(), ContactUser: $("[name='contName']").val(), Address: $("[name='address']").val(), Mobile: $("[name='phone']").val(), MainProducts: $("[name='go

MVVM架构~knockoutjs系列之为Ajax传递Ko数组对象

返回目录 一些要说的 这是一个很有意思的题目,在KO里,有对象和数组对象两种,但这两种对象对外表现都是一个function,如果希望得到他的值,需要进行函数式调用,如ko_a(),它的结果为一个具体值或者数组或者函数,而ko_a则表示一个KO对象. 今天主要说一下如何在ajax方法里向后台传递对象和数组等参数,一般说来,我们为后台传递的是字符串和数字,而如果希望传递对象,则需要使用$.param这个方法,下面具体用代码说一下. 一些要做的 一般后以的代码理想是这样的 public JsonRes

MVC传递数据-传递对象或对象集合

前言 本文主要介绍从View(或者js)文件向Controller提交对象或者对象集合,比如,将表格中的一行数据作为一个对象提交,或将多行数据作为一个集合提交到Controller. 回顾 从View(或者js)文件向Controller提交数据,你可能见过以下几种方式: 将提交的数据附在url地址后面 $.ajax({ type: "POST", url: "/InviteBid/UpdateBidZRecord/?JudgeBidId=" + JudgeBidI

Intent之对象传递(Serializable传递对象和对象集合)

Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递. Intent中传递这2种对象的方法: Bundle.putSerializable(Key,Object); //实现Serializable接口的对象 Bundle.putParcelable(Key, Object); //实现Parcelable接口的对象 一.