SpringMVC接受List的几种方式

说到SpringMVC接受List参数,可能有人会说这个是个坑!下面我来跟大家说怎么补这个坑。下面我分几种情况来讲:

一、只接收一个List

1、form表单提交

controller代码:

@ResponseBody
@RequestMapping("test")
public void test(@RequestParam(value="list",required = false) List<Integer> list) {for (Integer integer : list) {System.out.println(integer);}}

postman:

img

2、提交json对象

controller代码:

@ResponseBody
@RequestMapping("test")public void test(@RequestBody List<Integer> list) {for (Integer integer : list) {System.out.println(integer);}}

postman:

请求头设置:Content-Type application/json

img

img

总结一下:

controller 的区别在接收参数注解不一样,form表单提交是@RequestParam,接收json对象是@RequestBody

二、同时接收List和String,Interger等其他参数

1、form表单提交

controller代码:

	@ResponseBody@RequestMapping("test")public void test(@RequestParam(value="list",required = false) List<Integer> list,@RequestParam(value="test",required = false) String test) {for (Integer integer : list) {System.out.println(integer);}System.out.println(test);}

postman:

img

2、接收json对象

controller代码:

	@ResponseBody@RequestMapping("test")public void test(@RequestBody TestList testList) {for (Integer integer : testList.getList()) {System.out.println(integer);}System.out.println(testList.getTest());}

TestList 是自己写的接收对象:

public class TestList {private List<Integer> list;private String test;public List<Integer> getList() {return list;}public void setList(List<Integer> list) {this.list = list;}public String getTest() {return test;}public void setTest(String test) {this.test = test;}
}

postman:

请求Headers和之前一样

img

三、同时接收List、Map、String/Interger参数

controller代码:

@ResponseBody
@RequestMapping("test")
public void test(@RequestBody TestList testList) {for (Integer integer : testList.getList()) {System.out.println(integer);}System.out.println(testList.getTest());System.out.println(testList.getMap());
}

pojo对象:

public class TestList {private List<Integer> list;private String test;private Map<String, String> map;public Map<String, String> getMap() {return map;}public void setMap(Map<String, String> map) {this.map = map;}public List<Integer> getList() {return list;}public void setList(List<Integer> list) {this.list = list;}public String getTest() {return test;}public void setTest(String test) {this.test = test;}
}

postman:

img

接收成功!

img

注:POJO的传递和Map是一样的,把“map”改成你的对象名称,“ggg”这些换成对象的成员名称就可以了

四、接收List

controller:

        @ResponseBody@RequestMapping("test")public void test(@RequestBody List<PojoList> list) {for (PojoList pojoList : list) {System.out.println(pojoList.getTest1());System.out.println(pojoList.getTest2());}}

pojo:

public class PojoList {private String test1;private Integer test2;public String getTest1() {return test1;}public void setTest1(String test1) {this.test1 = test1;}public Integer getTest2() {return test2;}public void setTest2(Integer test2) {this.test2 = test2;}
}

postman:

img

总结一下:如果是单个List或者List带一些其他简单参数,form表单提交和Json对象提交都差不多,但是如果是比较复杂的数据,组合,个人建议建一个pojo去组合这些参数,然后再去接收。希望能帮到大家,如果有哪里不正确,希望指正,谢谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql怎么加固_mysql安装及加固

mysql安装查看是否安装mysql我们先看一下有没有安装mysqlyum list installed mysql | grep mysql本地只安装了php链接mysql的库&#xff0c;没有安装mysql如果有安装&#xff0c;可以使用安装的或者卸载了重新安装添加yum源去mysql官网查找下面我就来安装下yum源sudo rpm -ivh …

RabbitMQ保姆级教程

文章目录 前言一、MQ是什么&#xff1f; 1.1 AMQP 二、在Linux安装RabbitMQ 2.1 安装2.2 RabbitMQ启动命令2.3 开启RabbitMQ 后台管理界面 2.3.1 登录rabbitMQ UI界面 2.3 Docker启动RabbitMQ2.4 常见消息模型2.5 生产者(Producer) / 消费者(Consumer)2.6 工作队列模式(Work Q…

spring mysql 连接池配置_SpringBoot数据库连接池常用配置

关注公众号&#xff1a;程序猿王国 持续更新&#xff0c;每日分享在配置文件中添加配置如下(我使用的是多数据源)&#xff1a;spring.datasource.primary.urljdbc\:mysql\://localhost\:3306/test?useUnicode\true&characterEncoding\utf-8spring.datasource.prim…

交换机到底是啥?

1、交换机 交换机个人资料&#xff1a; 1.证件照 注&#xff1a;copy 百度百科 我的博客/交换机到底是啥&#xff1f; 这东西乍一看有点像月光宝盒&#xff0c;是不是。 2.个人简介 交换机&#xff08;Switch&#xff09;意为“开关”是一种用于电&#xff08;光&#xff0…

unity3d 动态合批设置_Unity3D SkinnedMeshRenderer合批优化

最近做了性能优化相关的工作&#xff0c;其中一些是关于战斗模块的渲染的。主要是对场景中使用的基于SkinnedMeshRenderer的网格进行了一些合批优化(降DC)&#xff0c;记录如下。项目使用的Unity版本为5.6.4p1。游戏中的战斗模块是这样的&#xff1a;战斗逻辑由服务器承担&…

java类的加载顺序_java类加载先后顺序

这里讲的不是类加载机制,是类的加载先后顺序。话不多说了&#xff0c;先设定以下场景:package com.jingdong;public class A {public static void main(String[] args){System.out.println(Ib.b);B bnew B();b.ibTest();}}public class B implements Ib{private D d;private C …

MyBatis:模糊查询的4种实现方式

1、根据姓名模糊查询员工信息 1.1、方式一 步骤一&#xff1a;编写配置文件 步骤二&#xff1a;测试 步骤三&#xff1a;分析 此种方式需要在调用处手动的去添加“%”通配符。 1.2、方式二 说明&#xff1a; 使用方式一可以实现模糊查询&#xff0c;但是有一点不方便的地…

java 阻塞 socket_java socket非阻塞I/O

1 非阻塞(Nonblocking)体系结构在这一部分&#xff0c;我将从理论的角度来解释非阻塞体系的结构及其工作原理。这部“喜剧”(当然&#xff0c;如果你喜欢的话也可以称做戏剧)的“人物”如下&#xff1a;●服务器端&#xff1a;接收请求的应用程序。●客户端&#xff1a;向…

java mod函数的使用方法_java 数学计算的具体使用

java.lang.Math 库提供了常用的数学计算工具常量final double E 2.7182818284590452354; // 自然对数底数final double PI 3.14159265358979323846; // 圆周率final double DEGREES_TO_RADIANS 0.017453292519943295; // 角度转弧度final double RADIANS_TO_DEGREES 57.295…

java的debug模式_java第六章:debug模式介绍及大量实例练习

1.Debug模式1.1什么是Debug模式【理解】是供程序员使用的程序调试工具&#xff0c;它可以用于查看程序的执行流程&#xff0c;也可以用于追踪程序执行过程来调试程序。1.2Debug模式操作流程【应用】如何加断点选择要设置断点的代码行&#xff0c;在行号的区域后面单击鼠标左键即…

注解RequestMapping中的URI路径最前面到底需不需要加斜线?

注解RequestMapping中的URI路径最前面到底需不需要加斜线? 您有没有这样的困惑&#xff1a;在协同开发过程中&#xff0c;使用RequestMapping&#xff0c;或者是GetMapping&#xff0c;或者是PostMapping这类注解时&#xff0c;有的程序员加了斜线&#xff0c;有的程序员没有…

java ajax jquery分页插件_jquery ajax分页插件的简单实现

说到基于jQuery的ajax分页插件&#xff0c;那我们就先看看主要的代码结构&#xff1a;1、首先定义一个pager对象&#xff1a;var sjPager window.sjPager {opts: {//默认属性pageSize: 10,preText: "pre",nextText: "next",firstText: "First"…

java thrift连接池_由浅入深了解Thrift之客户端连接池化

一、问题描述在上一篇《由浅入深了解Thrift之服务模型和序列化机制》文章中&#xff0c;我们已经了解了thrift的基本架构和网络服务模型的优缺点。如今的互联网圈中&#xff0c;RPC服务化的思想如火如荼。我们又该如何将thrift服务化应用到我们的项目中哪&#xff1f;实现thrif…

Vue 进阶组件实战应用 -- 父子组件传值的应用实例(子父组件传值的两种触发方式)

基础的子组件和父组件通信已经搞定了&#xff0c;可以看此博客 父子组件传值基础应用 需求 现在需求是在一个父页面引用子组件&#xff0c;不只是要实现基本的父子组件传值。并且子组件给父组件传值的触发条件要在父页面触发。 目前小编采用的方式是使用ref 属性this.emit 方法…

学习Spring Boot:(一)入门

微服务 微服务其实是服务化思路的一种最佳实践方向&#xff0c;遵循SOA&#xff08;面向服务的架构&#xff09;的思路&#xff0c;各个企业在服务化治理上面的道路已经走得很远了&#xff0c;整个软件交付链上各个环节的基础设施逐渐成熟了&#xff0c;微服务就诞生了。 微服务…

学习Spring Boot:(二)启动原理

前言 主要了解前面的程序入口 SpringBootApplication 这个注解的结构。 正文 参考《SpringBoot揭秘 快速构建微服务体系》第三章的学习&#xff0c;总结下。 SpringBootApplication背后的秘密 Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) Documented In…

学习Spring Boot:(四)应用日志

前言 应用日志是一个系统非常重要的一部分&#xff0c;后来不管是开发还是线上&#xff0c;日志都起到至关重要的作用。这次使用的是 Logback 日志框架。 正文 Spring Boot在所有内部日志中使用Commons Logging&#xff0c;但是默认配置也提供了对常用日志的支持&#xff0c…

学习Spring Boot:(五)使用 devtools热部署

前言 spring-boot-devtools 是一个为开发者服务的一个模块&#xff0c;其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后&#xff0c;重新启动应用&#xff0c;但是比速度比手动停止后再启动还要更快&#xff0c;更快指的不是节省出来的手工…

学习Spring Boot:(六) 集成Swagger2

前言 Swagger是用来描述和文档化RESTful API的一个项目。Swagger Spec是一套规范&#xff0c;定义了该如何去描述一个RESTful API。类似的项目还有RAML、API Blueprint。 根据Swagger Spec来描述RESTful API的文件称之为Swagger specification file&#xff0c;它使用JSON来表…

java的队列实现方法_Java实现队列的三种方法集合

数组实现队列//数组实现队列class queue{int[] a new int[5];int i 0;//入队操作public void in(int m) {a[i] m;}// 出队列操作 取出最前面的值 通过循环遍历把所有的数据向前一位public int out() {int index 0;int temp a[0];for(int j 0;j < i;j) {a[j] a[j 1];…