一次使用的时候发现,这两个注解都能用于接收参数,那么它俩的区别是啥呢?
@RequestParam
用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容。
@RequestParam接收的参数是来自requestHeader中,即请求头。通常用于GET请求,像POST、DELETE等其它类型的请求也可以使用。
@RequestBody
该注解使用系统默认配置HttpMessageConverter来解析,然后将相应的数据绑定到要返回的对象上
- 接收的参数是来自requestBody中,即请求体。
- 一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据,multipart/form-data, 即使使用@RequestBody不能处理这种格式的数据。
- 通常用于接收POST、DELETE等类型的请求数据,GET类型也可以适用。
@ResponseBody
- 该注解用于将Controller的方法返回的对象,通过适当的转换器(HttpMessageConverter)转换为指定格式后,写入到Response对象的body数据区。
- 返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用。
TODO 后续继续添加
网友评论