POJO可作为目标Header,目标方法的参数的类型叫POJO(普通的java类),那为什么会出现这个POJO呢?
出现原因:如果请求是一个表单,这个表单通常需要对应一个类的对象。如果这时候使用RequestParam一一映射,那么代价就太大了,这时候可以使用一个java对象来作为参数。
. SpringMVC 会按照请求参数名和POJO属性名来进行自动化匹配,自动为改参数对象填充属性值。并且支持级联属性。如:dept.deptId, dept.address.tel等。
index.jsp
<div align="center">
<form action="springmvc/testPojo" method="post">
username: <input type="text" name="username"/><br><br>
password: <input type="password" name="password"/><br><br>
email: <input type="text" name="email"/><br><br>
age: <input type="text" name="age"/><br><br>
province: <input type="text" name="address.province"/><br><br>
city: <input type="text" name="address.city"/><br><br>
<input type="submit" value="submit"/>
</form>
</div>
SpringMVCTest.java
@RequestMapping("/testPojo")
public String testPojo(User user) {
System.out.println("testPojo :" + user);
return SUCCESS;
}
在src下新建com.atguigu.springmvc.entities包
User.java
public class User {
private String username;
private String password;
private String email;
private int age;
private Address address;
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.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 String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + ", email=" + email + ", age=" + age
+ ", address=" + address + "]";
}
}
Address.java
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 + "]";
}
}