栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Mvc 参数传递

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Mvc 参数传递

Spring Mvc 获取参数的类型总体上来说分为五类:基本数据类型、普通对象、数组、集合List和较为复杂的对象+集合List类型的。

1.基本数据类型

基本数据类型直接通过非JSON请求方式,就是通过给Controller层中的方法添加参数向前台请求即可。

2.普通对象 非JSON请求
//前台
localhost:8080/demo2?name=1&number=2

//后台
@ResponseBody
@RequestMapping("demo2")
public Demo demo2(Demo demo){
    System.out.println("demo:"+demo);
    return demo;
}

后台方法的参数写对应对象即可,前台请求方式与基本数据类型一致,请求对象的属性,不传为null。

JSON请求
//前台
localhost:8080/demo22
===========headers==============
Content-Type:application/json
============body==============
{
	"name": "11",
	"number": "22"
}

//后台
@ResponseBody
@PostMapping("demo22")
public Demo demo22(@RequestBody Demo demo){
    System.out.println("demo:"+demo);
    return demo;
}

注意:传参格式符合JSON形式即可。后台方法请求JSON类型数据必须在前面加注解@RequestBody。

3.数组 非JSON请求
//前台
localhost:8080/demo3?ids=1&ids=2&ids=3
或
localhost:8080/demo3?ids=1,2,3

//后台
@ResponseBody
@RequestMapping("demo3")
public Long[] demo3(Long[] ids){
    System.out.println("ids:"+ids.length);
    return ids;
}

注意前台的传参方式即可,后台直接请求数组。

JSON请求
//前台
localhost:8080/demo33
===========headers==============
Content-Type:application/json
============body==============
[1,2,3]

//后台
@ResponseBody
@RequestMapping("demo33")
public Long[] demo33(@RequestBody Long[] ids){
    System.out.println("ids:"+ids.length);
    return ids;
}

数组类型JSON使用中括号即可。后台请求JSON类型需加@RequsetBody注解。

4.集合List 非JSON请求
//前台
localhost:8080/demo4?idList=1&idList=2
或
http://localhost:8080/demo4?idList=1,2,3

//后台
@ResponseBody
@RequestMapping("demo4")
public List demo4(@RequestParam List idList){
    System.out.println("ids:"+idList);
    return idList;
}

注意:该方式必须添加@RequestParam进行解析。

JSON请求
//前台
localhost:8080/demo5
===========headers==============
Content-Type:application/json
============body==============
[1,2,3]

//后台
@ResponseBody
@RequestMapping("demo5")
public List demo5(@RequestBody List idList){
    System.out.println("ids:"+idList);
    return idList;
}

前台传参与数组类型一致,后台的参数为List类型。

5.对象+List集合

 

该情况将对象属性与集合封装成新对象即可。

非JSON请求
//前台
http://localhost:8080/demo2
=============Form Data====================
name: 
111
number: 
111
demoCList[0].nickname: 
1
demoCList[0].number: 
11
demoCList[1].nickname: 
222
demoCList[1].number: 
22
demoCList[2].nickname: 
333
demoCList[2].number: 
333
demoCList[3].nickname: 
444
demoCList[3].number: 
44

//后台
@ResponseBody
@RequestMapping("demo6")
public Demo demo6(Demo demo){
    System.out.println("demo:"+demo);
    return demo;
}
==============================================
public class Demo {

    private String name;
    private String number;
    private List demoCList;
    ....省略get set方法....
}
JSON请求
//前台
localhost:8080/demo7
===========headers==============
Content-Type:application/json
============body==============
{
	"name": "0616",
	"number": "2",
	"demoCList": [{
		"id": "2",
		"nickname": "1111",
		"number": "11111"
	}, {
		"nickname": "1111",
		"number": "11111"
	}, {
		"nickname": "1111",
		"number": "11111"
	}]
}

//后台
@ResponseBody
@RequestMapping("demo7")
public Demo demo7(@RequestBody Demo demo){
    System.out.println("demo:"+demo);
    return demo;
}

这种复杂对象更贴近实际,合理构建新对象是需要磨炼的点。List集合同样可以是复杂类型的。

6.测试

测试工具可以使用Postman,传JSON类型数据时,按下图调整好即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/603104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号