复杂类型的绑定
1、准备一个复杂对象
package com.test.pojo;
public class User {
private String uname;
private String pwd;
private int age;
private Address address;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"uname='" + uname + '\'' +
", pwd='" + pwd + '\'' +
", age=" + age +
", address=" + address +
'}';
}
}
package com.test.pojo;
public class Address {
private String province;
private String city;
private String detailAddress;
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;
}
public String getDetailAddress() {
return detailAddress;
}
public void setDetailAddress(String detailAddress) {
this.detailAddress = detailAddress;
}
@Override
public String toString() {
return "Address{" +
"province='" + province + '\'' +
", city='" + city + '\'' +
", detailAddress='" + detailAddress + '\'' +
'}';
}
}
2、表单中传值的时候,表单控件名称设置为
属性名和表单的控件名一致
子对象中的属性 用 属性名.子对象的属性名
<form action="user2/addUser" method="post">
<pre>
用户名:<input type="text" name="uname" />
密码:<input type="text" name="pwd" />
年龄:<input type="text" name="age" />
省: <input type="text" name="address.province" />
市:<input type="text" name="address.city" />
详细地址:<input type="text" name="address.detailAddress" />
<input type="submit" name="sub" value="提交" />
</pre>
</form>
3、控制层接收
@RequestMapping("/user2")
public class UserController2 {
@RequestMapping("/addUser")
public String addUser(User user)
{
//直接用user对象接收
System.out.println(user);
return "success";
}
}