SpringMVC获得请求数据
1.获得请求参数
客户端请求参数的格式是:name=value&name=value…
服务器要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数:
- 基本类型参数
- POJO类型参数
- 数组类型参数
- 集合类型参数
2.获得基本类型参数
Controller中的业务方法的参数名要与请求参数的name一致,参数值就会自动映射匹配。
代码示例:
//UserController.java
@RequestMapping("quick11")
@ResponseBody //告知Spring框架不进行视图跳转,直接进行数据响应
public void save11(String username,int age) throws IOException{
System.out.println(username);
System.out.println(age);
测试截图:
3.获得POJO类型参数
Controller中的业务方法的POJO参数的属性名要与请求参数的name一致,参数值就会自动映射匹配。
代码示例:
//UserController.java
@RequestMapping("quick11")
@ResponseBody //告知Spring框架不进行视图跳转,直接进行数据响应
public void save10(User user) throws IOException{
System.out.println(user);
}
测试截图:
4.获得数组类型参数
Controller中的业务方法的数组名称与请求参数的name一致,参数值就会自动映射匹配。
代码示例:
//UserController.java
@RequestMapping("quick12")
@ResponseBody //告知Spring框架不进行视图跳转,直接进行数据响应
public void save12(String[] strs) throws IOException{
System.out.println(Arrays.asList(strs));
}
测试截图:
5.获得集合类型参数
(1)获得集合参数时,要将集合参数包装到一个POJO中才可以。
代码示例:
//form.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/quick13" method="post">
<%-- 表明是第几个User对象的username和age--%>
<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>
</body>
</html>
代码示例:
//UserController.java
@RequestMapping("/quick13")
@ResponseBody //告知Spring框架不进行视图跳转,直接进行数据响应
public void save13(VO vo) throws IOException{
System.out.println(vo);
}
代码示例:
//VO.java
package com.xc.domain;
import java.util.List;
public class VO {
private List<User> userList;
public List<User> getUserList()