使用 POJO 对象绑定请求参数值
Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。
如:dept.deptId、dept.address.tel 等
示例
1. JSP页面
<li>使用 POJO 对象绑定请求参数值 <form action="user/testPOJOMapping" method="POST"> <table> <tr> <td>用户名:</td><td><input type="text" name="username" value=""/></td> </tr> <tr> <td>密码:</td><td><input type="password" name="password" value=""/></td> </tr> <tr> <td>电子邮件:</td><td><input type="text" name="email" value=""/></td> </tr> <tr> <td>联系电话:</td><td><input type="text" name="phonenumber" value=""/></td> </tr> <tr> <td>省份:</td><td><input type="text" name="address.province" value=""/></td> </tr> <tr> <td>城市:</td><td><input type="text" name="address.city" value=""/></td> </tr> <tr align="right"> <td colspan="2"><input type="submit"/></td> </tr> </table> </form> </li>
2. 添加模型类
package org.rabbitx.web.spring4mvc.requestmapping.model;
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 + "]";
}
}
package org.rabbitx.web.spring4mvc.requestmapping.model;
public class User {
private String username;
private String password;
private String email;
private String phonenumber;
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 String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhonenumber() {
return phonenumber;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password
+ ", email=" + email + ", phonenumber=" + phonenumber
+ ", address=" + address + "]";
}
}
3. 添加处理类
/**
* 使用 POJO 对象绑定请求参数值
*
* Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。
* 如address.province,address.city等
*
* 遗留问题:
* 1. 表单内容为中文时,乱码
*/
@RequestMapping("testPOJOMapping")
public String testPOJOMapping(User user)
{
System.out.println("------testPOJOMapping - user :" + user +" ------");
return LOGIN;
}