SpringMVC获得请求数据
使用SpringMVC获得请求参数
一.客户端请求参数的格式是:name=value&name=value
二.服务器要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数
(1)基本类型参数
(2)POJO类型参数
(3)数组类型参数
(4)集合类型参数
注意: POJO是简单的Java对象(Plain Ordinary Java Objects),实际就是普通JavaBeans
1.获得基本类型参数
Controller中的业务方法的参数名称与请求参数的name一致,参数值会自动匹配
2.获得POJO类型参数
Controller中的业务方法的POJO参数的属性名与请求参数的name一致,参数值会自动映射匹配
3.获得数组类型参数
Controller中的业务方法数组名称与请求参数的name一致,参数值会自动映射匹配
4.获得集合类型参数
(1)获得集合类型时,要将集合包装到一个POJO中才可以
<form> <form action="${pageContext.request.contextPath}/quick4" method="post"> <input type="text" name="userList[0].username"><br> <input type="text" name="userList[0].age"><br> <input type="text" name="userList[1].username"><br> <input type="text" name="userList[1].age"><br> <input type="submit" value="提交"> </form> public class User{ private String username; private int age; } public class VO{ private List<User> userList; //getter/setter } @RequestMapping("/quick4") @ResponseBody public void quick4(VO vo) { System.out.println(vo.getUserList()); }
(2)当使用ajax提交时,可以指定contentType为json形式,那么在方法参数位置使用@RequestBody可以直接接收集合数据而无需使用POJO进行包装
<script> var userList = new Array(); userList.push({username: "zhangsan", age: "18"}); userList.push({username: "lisi", age: "20"}) $.ajax({ type: "POST", url: "/quick5", data: JSON.stringify(userList), contentType: 'application/json;charset=utf-8' }); </script> @RequestMapping("/quick5") @ResponseBody public void quickMethod5(@RequestBody List<User> userList){ System.out.println(userList); }