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

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进行接收。

上一篇:6、shell编程之函数


下一篇:linux安装python