SpringMVC接收复杂集合参数,集合对象

2024-05-05 06:58

本文主要是介绍SpringMVC接收复杂集合参数,集合对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。以下列举接收List<Integer>、List<User>、List<Map<String,Object>>、User[]、User(bean里面包含List)几种较为复杂的集合参数示例:

    一、接收List<Integer>集合参数:

1、页面js代码:

Js代码

var arr = [1,2,3];
$.jBox.confirm("确定要删除数据吗?", "warning",function () {
    $.ajax({
       type: 'get',
       url: '${base.contextPath}/giving/index/del',
       dataType: 'json',
       data: {ids: arr},
       success: function (result) {
          …
       },
       error: function (result) {
          …
       }
   })
})

 

2、Controller方法:

 

Java代码

@Controller
@RequestMapping("/wxgiving")
public class WxGivingController{
  @RequestMapping(value = "/index/del", method = RequestMethod.GET)
  @ResponseBody
  public ReturnMsg del (@RequestParam(value = "ids[]")List <Integer> ids){
     …
  }
}

 

     接收List<User>、User[]集合参数:

1、User实体类:

 

Java代码

public class User {
  private int id;
  private String name;
  private String pwd;
  //省略getter/setter
}

2、页面js代码:

Js代码

//可以找前端拼成这种类型
var userList = new Array();
userList.push({name: "张三",pwd: "123"});
userList.push({name: "李四",pwd: "223"});
$.ajax({
    type: "POST",
    url: "${base.contextPath}/user/index/add",
    data: JSON.stringify(userList),//将对象序列化成JSON字符串
    dataType:"json",
    contentType : 'application/json;charset=utf-8', //设置请求头信息
    success: function(result){
        …
    },
    error: function(result){
        …
    }
  });

 

3、Controller方法:

Java代码

@Controller
@RequestMapping(value = "/user")
public class UserController(){
  @RequestMapping(value = "/index/add", method = RequestMethod.POST)
  @ResponseBody
  public ReturnMsg addOrEdit(@RequestBody List<User> userList) {
     …
  }
}

如果想要接收User[]数组,只需要把add的参数类型改为@RequestBody User[] userArray就行了。

 

    接收List<Map<String,Object>>集合参数:

1、页面js代码(不需要User对象了):

Js代码

    var userList = new Array();
    userList.push({name: "张三",pwd: "123"});
    userList.push({name: "李四",pwd: "223"});
    $.ajax({
        type: "POST",
        url: "${base.contextPath}/user/index/add",
        data: JSON.stringify(userList),//将对象序列化成JSON字符串
        dataType:"json",
        contentType : 'application/json;charset=utf-8', //设置请求头信息
        success: function(result){
            …
        },
        error: function(result){
            …
        }
      });

 

2、Controller方法:

Java代码

    @Controller
    @RequestMapping(value = "/user")
    public class UserController(){
      @RequestMapping(value = "/index/add", method = RequestMethod.POST)
      @ResponseBody
      public ReturnMsg addOrEdit(@RequestBody List<Map<String,Object>> listMap) {
        …
      }
    }

     接收User(bean里面包含List)集合参数:

1、User实体类:

Java代码

    public class User {
      private int id;
      private String name;
      private String pwd;
      private List<User> userList;
      //省略getter/setter
    }

 

2、页面js代码:

 

Js代码

    var userArray= new Array();
    userArray.push({name: "张三",pwd: "123"});
    userArray.push({name: "李四",pwd: "223"});
    var user = {};
    user.name = "王五";
    user.pwd = "888";
    user.userList= userArray;
    $.ajax({
        type: "POST",
        url: "${base.contextPath}/user/index/add",
        data: JSON.stringify(user),//将对象序列化成JSON字符串
        dataType:"json",
        contentType : 'application/json;charset=utf-8', //设置请求头信息
        success: function(result){
            …
        },
        error: function(result){
            …
        }
      });

3、Controller方法:

Java代码

    @Controller
    @RequestMapping(value = "/user")
    public class UserController(){
      @RequestMapping(value = "/index/add", method = RequestMethod.POST)
      @ResponseBody
      public ReturnMsg addOrEdit(@RequestBody User user) {
        List<User> userList= user.getUserList();



转载地址:https://blog.csdn.net/wus_shang/article/details/79284345
 

这篇关于SpringMVC接收复杂集合参数,集合对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961065

相关文章

测试服务搭建之centos7下安装java

一 安装Java 1 创建普通用户 useradd userNameTest passwd userNameTest 提示输入密码:【输入wujian的密码】 user:userNameTest group:root passwd:123456789   2 给“userNameTest”分配root权限 vi /etc/sudoers 在文件中找到 # %wheel ALL=(

selenium +java 多个类公用driver问题

问题点:太久没有写selenium代码,居然把driver公用的问题忘记了,即:每写一个测试类,执行过程中都会新建一个窗口,这样应该说是非常不专业的。 大概想了一个方法,虽然看起来也不怎么专业,但感觉能用就很开心了。 解决步骤:                1 创建一个获取获取driver的方法getDriver()                2 创建成员变量,将 getDriver()赋值

mybaits参数处理map-------mybatis(五)

mybaits参数处理 Mybatis日常业务总我们无论是查询也好,插入也罢,我们一般都需要将实体的多个属性值到映射的sql语句中,比较常见的做法就是将实体属性封装到Map中,mybatis会自动从map中取出对应的属性值构造sql语句。下面为实例代码: 实体类 package model;public class Bloger {private int id;private Str

IDEA +maven git tomcat database数据库 调试 插件 log4j Spring junit

前言 idea优化配置、常规配置、配置maven、git、tomcat、database数据库、调试配置、插件配置、log4j配置、Spring配置等等,稍后一一更新! 优化配置(#item1 “item1”) 打开文件 :“idea – > bin – >idea64.exe.vmoptions” -Xms: 初始内存;-Xmx : 最大内存;-ReservedCodeCache

4-Springboot集成FLOWABLE之流程驳回

目录标题 演示地址效果功能后端代码补充 演示地址 效果 功能 默认驳回到上一节点 后端代码 flowable自带驳回功能, 在源码ProcessInstanceResource.class下已有该功能,不需要自己额外去写 @ApiOperation(value = "Change the state a process instance", tags = { "Pr

bimface 模型集成-后端(java)上传、发起转换、获取转换状态

目录 前言后端架构流程存储表结构全局工具类先根据appid, appsecret 生成accesstoken, 保存到自己的存储服务器。利用保存的 accesstoken 上传模型发起转换获取转换状态根据bimface文件ID获取模型viewtoken, 获取到viewtoken就可以利用前端浏览模型或图纸了 前言 之前没有注意官方有个sdk,然后自己就实现了这么个逻辑。建议

JavaScript的变量申明提前

变量提升 JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部: 只是将变量的申明提前,而不提前变量的值和函数的值 'use strict';function foo() {var x = 'Hello, ' + y;alert(x);var y = 'Bob';}foo(); 虽然是strict模式,但语句var x = 'Hell

Java ArryList

ArrayList简介 ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 1、动态的增加和减少元素; 2、实现了ICollection和IList接口 ; 3、灵活的设置数组的大小; ArrayList的基本用法 1、创建一个动态数组,并赋值 //创建一个动态数组ArrayList list = new ArrayL

SpringBoot 学习六:数据库的增删改查

1、新建一个Girl类,添加如下代码: package controlle;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entitypublic class Girl {@Id@GeneratedValueprivate Integer

SpringBoot 学习五:连接数据库

1、在pom.xml需要添加与数据库相关的两个依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>my