@RequestBody是可以将请求信息的body内容绑定到程序的实体类中
在这里绑定的时候可以是xml形式,也可以是json格式
在绑定的时候节点或者参数的字母大小写不影响是否绑定
但是在输出的时候,因为要求的不同,会有大小写的区分
在这种情况下,需要在实体类中GET方法上注解来规定输出的形式
例如:这样输出的值就是固定的
@JacksonXmlProperty(localName="Id")
public Integer getId() { return id; }
结果就是这样的形式
<Id></Id>
@RequestBody如何将不同的参数绑定到实体类,主要实现了它下面的HttpMessageConverter这个类,HttpMessageConverter是一个转换器,将不同的格式之间互相转换,从而将body内容成功绑定到程序中的实体类
HttpMessageConverter有很多方法
比如
ByteArrayHttpMessageConverter: 负责读取二进制格式的数据和写出二进制格式的数据; StringHttpMessageConverter: 负责读取字符串格式的数据和写出二进制格式的数据; ResourceHttpMessageConverter:负责读取资源文件和写出资源文件数据; FormHttpMessageConverter: 负责读取form提交的数据(能读取的数据格式为 application/x-www-form-urlencoded,不能读取multipart/form-data格式数据);负责写入application/x-www-from-urlencoded和multipart/form-data格式的数据; MappingJacksonHttpMessageConverter: 负责读取和写入json格式的数据; SouceHttpMessageConverter: 负责读取和写入 xml 中javax.xml.transform.Source定义的数据;
Jaxb2RootElementHttpMessageConverter: 负责读取和写入xml 标签格式的数据; AtomFeedHttpMessageConverter: 负责读取和写入Atom格式的数据; RssChannelHttpMessageConverter: 负责读取和写入RSS格式的数据;