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