3、请求参数绑定
(1)多个请求参数的绑定
请求链接
<a href="selectUser?username=xiao&age=18">点击</a>
/**
* 参数名相同时,spring会通过反射将请求参数的值赋值该方法的参数
* 当参数名不一致时,通过@RequestParam注解解决
*/
@RequestMapping(value = "/selectUser")
@ResponseBody
public String selectUser(@RequestParam("username") String name, Integer age){
return name + age;
}
(2)请求参数绑定实体类型
实体类
public class User {
//基本数据类型
private String username;
private Integer age;
//省略get、set、toString方法
发送请求
<a href="selectUser?username=xiao&age=18">点击</a>
请求映射
@RequestMapping("/selectUser")
@ResponseBody
public String selectUser2(User user){
return user.toString();
}
(3)实体类的属性是实体类型参数绑定
User 类
Account类
public class Account {
private String id;
private Double money;
public class User {
//基本数据类型
private String username;
private Integer age;
//实体类属性是实体类型
private Account account;
请求链接
<a href="user/selectUser?username=xiao&age=18&account.id=120658">点击</a>
请求映射
/**请求参数绑定实体类
* 要求实体类的属性与请求参数的参数名相同
*/
@RequestMapping("/selectUser")
@ResponseBody
public String selectUser2(User user){
return user.toString()+ user.getAccount().toString();
}
(4)参数绑定实体类集合属性
实体类
public class User {
//基本数据类型
private String username;
private Integer age;
private List<Account> accountList;
private Map<String, Account> accountMap;
表单
<form action="user/selectUser" method="post">
姓名:<input type="text" name="username"><br>
年龄:<input type="text" name="age"><br>
<h3>List</h3>
账户:<input type="text" name="accountList[0].id"><br>
金额:<input type="text" name="accountList[0].money"><br>
<h3>Map</h3>
账户:<input type="text" name="accountMap['ac'].id"><br>
金额:<input type="text" name="accountMap['ac'].money"><br>
<input type="submit" value="提交">
</form>
controller
/**请求参数绑定实体类
* 要求实体类的属性与请求参数的参数名相同
*/
@RequestMapping("/selectUser")
@ResponseBody
public String selectUser2(User user){
return user.toString() + user.getAccountList().toString() + user.getAccountMap().toString();
}