SpringMVC复杂类型的绑定
复杂类型的绑定
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"; } }