SpringMVC接受List的几种方式
发布日期:2021-11-11 12:48:08 浏览次数:2 分类:技术文章

本文共 3070 字,大约阅读时间需要 10 分钟。

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

一、只接收一个List

1、form表单提交

controller代码:

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

postman:

2、提交json对象

controller代码:

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

postman:

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

总结一下:

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

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

1、form表单提交

controller代码:

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

postman:

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
list; private String test; public List
getList() { return list; } public void setList(List
list) { this.list = list; } public String getTest() { return test; } public void setTest(String test) { this.test = test; }}

postman:

请求Headers和之前一样

三、同时接收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
list; private String test; private Map
map; public Map
getMap() { return map; } public void setMap(Map
map) { this.map = map; } public List
getList() { return list; } public void setList(List
list) { this.list = list; } public String getTest() { return test; } public void setTest(String test) { this.test = test; }}

postman:

接收成功!

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

四、接收List<POJO>

controller:

@ResponseBody	@RequestMapping("test")	public void test(			@RequestBody List
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:

 

 

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

转载地址:https://blog.csdn.net/Carson073/article/details/84874693 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:解决Transactional注解不回滚
下一篇:MySQL的批量查询后插入另一个表格

发表评论

最新留言

很好
[***.229.124.182]2024年04月18日 05时12分20秒