1.技术由来
我们在请求的时候,如果是一个表单的话,这个表单通常需要对应一个类的对象,如果此时使用RequestParam去映射的话,成本太高、太麻烦、复杂、代码凌乱.....
2.概述
我们这个时候就用一个java对象来作为请求参数,SpringMVC会按照请求参数名和java类属性名进行自动的匹配,自动为该对象进行填充属性值,而且还支持级联属性;
如:address.city、address.province等;
3.代码
index.jsp <form action="springmvc/testPojo" method="POST"> username:<input type="text" name="username" /> <br/> password:<input type="password" name="password" /> <br/> email:<input type="text" name="email" /> <br/> age:<input type="text" name="age" /> <br/> city:<input type="text" name="address.city" /> <br/> province:<input type="text" name="address.province" /> <br/> <input type="submit" value="submit" /> </form> 实体类 package com.yk.springmvc.entities; /** * 实体类 * * @author Administrator * */ 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 + "]"; } } package com.yk.springmvc.entities; /** * 验证支持级联属性 * * @author Administrator * */ 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 + "]"; } } java测试代码 @RequestMapping("/testPojo") public String testPojo(User user){ System.out.println("SpringMVCTest.testPojo()"+user); return SUCCESS; }
4.结果
SpringMVCTest.testPojo()User [username=jack, password=123123, email=jack@qq.com, age=25, address=Address [province=Beijing, city=Beijing]]