我理解的SpringMVC之获取请求参数

本文详细介绍了Spring MVC中如何通过GET和POST请求接收不同类型的参数,包括基本类型、POJO、数组和集合。示例代码展示了前端表单和后端控制器的交互,同时也提到了@RequestBody注解在处理JSON格式数据时的作用。无论GET还是POST,后台都能处理基本类型、实体、数组及集合参数,而对于JSON格式,需要@RequestBody来接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GET请求获取参数

基本类型参数

<form action="${pageContext.request.contextPath}/test3" method="get">
	<input type="text" name="name">
	<input type="submit" value="提交">
</form>
@RequestMapping("test3")
@ResponseBody
public void test3(String name){
	System.out.println(name+"~");
}

POJO类型参数(实体接收)

<form action="${pageContext.request.contextPath}/test4" method="get">
	<input type="text" name="name">
	<input type="submit" value="提交">
</form>
@RequestMapping("test4")
@ResponseBody
public void test4(User user){
	System.out.println(user.getName()+"~");
}

数组类型参数

<form action="${pageContext.request.contextPath}/test5" method="get">
	<input type="text" name="name">
	<input type="text" name="name">
	<input type="submit" value="提交">
</form>
	@RequestMapping("test5")
	@ResponseBody
	public void test5(String[] name){
		System.out.println(Arrays.asList(name)+"~");
	}

集合类型参数

public class Vo {
	private List<User> list;

	public List<User> getList() {
		return list;
	}

	public void setList(List<User> list) {
		this.list = list;
	}
	
}
<form action="${pageContext.request.contextPath}/test6" method="get">
	<input type="text" name="list[0].name">
	<input type="text" name="list[0].age">
	<input type="text" name="list[1].name">
	<input type="text" name="list[1].age">
	<input type="submit" value="提交">
</form>
	@RequestMapping("test6")
	@ResponseBody
	public void test6(Vo vo){
		System.out.println(vo.getList()+"~");
	}

POST请求获取参数

基本类型参数

与GET请求一致

POJO类型参数

与GET请求一致

数组类型参数

与GET请求一致

集合类型参数

POST分为两种,第一种与GET请求一致,第二种会使用到@RequestBody ,它用于接收前端发给后端的json参数,使用它需要一个前提条件,需要配置MappingJackson2HttpMessageConverter,或者配置注解驱动,它会底层默认加载。

var arr = new Array();
arr.push({name:"zhangs",age:"18"});
arr.push({name:"lis",age:"19"});

$.ajax({
	url:"${pageContext.request.contextPath}/test7",
	type:"post",
	data:JSON.stringify(arr),
	contentType:"application/json;charset=utf-8"
});
	@RequestMapping("test7")
	@ResponseBody
	public void test7(@RequestBody List<User> arr){
		System.out.println(arr+"~");
	}

@RequestBody 不只是能接收集合数据,也能接收其他类型的json数据。
并且,它和@RequestParam 不冲突

总结

不管是GET请求还是POST请求,后台都可以接收基本类型参数、POJO类型参数、数组类型参数、集合类型参数。格式也非常的类似,只是如果前端发来的是json格式的,需要加@RequestBody进行接收。

参考

哔哩哔哩视频:https://www.bilibili.com/video/BV1WZ4y1P7Bp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值