一. 知识储备
1.1 使用POJO作为请求参数
- 使用POJO对象绑定请求参数
- SpringMVC会按请求参数名和POJO对象的属性名进行自动匹配。自动为该对象填充属性值,支持级联属性(即User对象里面有一个Address类型的属性),如dept.deptId,dept.address.tel等
二. 例子
Address.java
package com.atguigu.springmvc.beans;
public class Address {
private String province;
private String city;
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "Address [province=" + province + ", city=" + city + "]";
}
}
User.java
package com.atguigu.springmvc.beans;
public class User {
private String username;
private String password;
private Integer age;
private Address address;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + ", age=" + age + ", address=" + address + "]";
}
}
index.jsp
<form action="testPOJO" method="post">
username:<input type="text" name="username" /><br>
password:<input type="password" name="password" /><br>
age:<input type="text" name="age" /><br>
province:<input type="text" name="address.province" /><br>
city:<input type="text" name="address.city" /><br>
<input type="submit" value="注册"/>
</form><br>
SpringmvcHandler.java
/**
* 使用POJO封装请求参数
*
* 要求:请求参数名必须要与POJO的属性名一致
*/
@RequestMapping("/testPOJO")
public String testPOJO(User user) {
System.out.println("user:" + user);
return "success";
}