1.使用包装类型和基本类型的区别
包装类型可以为空
基本类型不可以为空(建议使用别名@RequestParam),
当没有赋值时:500 Optional int parameter ‘age‘ is present but cannot be translated into a null value due to being declared as a primitive type
当赋值错误时:http status 400 required int paramenter age is not present
2.多层级对象
适用于有子对象的数据 使用/object.do?name=ll&age=12&contacttInfo.phone=123243214
3.同属性的多对象
适用于多个相同的bean的数据,没有list方便
object.do?user.name=Tom&admin.name=Lucy&age=10
@InitBinder("user") public void initUser(WebDataBinder binder){ binder.setFieldDefaultPrefix("user."); } @InitBinder("admin") public void initAdmin(WebDataBinder binder){ binder.setFieldDefaultPrefix("admin."); }
4.list数据的绑定(set可以用来排除相同的数据,set要初始化)
适用与多个相同的bean的数据 list.do?users[0].name=Tom&users[1].name=Lucy 使用list提供set和get方法进行数据收集
5.set数据绑定
Set数据绑定时要初始化大小
set.do?users[0].name=Tom&users[2].name=Lucy
可以通过重写eques和hashcode方法排除相同的数据使添加数据重复而导致失败
6.map的数据绑定
map.do?users[‘X‘].name=Tom&users[‘X‘].age=10&users[‘Y‘].name=Lucy
对map提供set和get方法
7.json
{"name": "Jim", "age": 16, "contactInfo": { "address": "beijing","phone": "10010" } } @RequestMapping(value = "json.do") @ResponseBody public String json(@RequestBody User user){ return user.toString(); }
需要导包
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.9</version>
</dependency>
8. xml
<?xml version="1.0" encoding="UTF-8" ?> <admin> <name>Jim</name> <age>16</age> </admin>
@RequestMapping(value = "xml.do") @ResponseBody public String xml(@RequestBody Admin admin){ return admin.toString(); } 需要用到 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>4.0.0.RELEASE</version> </dependency> 并且需要对bean进行注解 @XmlRootElement(name="admin") public class Admin @XmlElement(name="name") public String getName() { return name;}