@RequestParam和@RequestBody的区别

@RequestParam:实质是将Request.getParamer()中的Key-Value参数Map利用Spring的转换机制

  • 仅支持Content-Type为x-www-form-urlencoded
  • 支持所有请求类型,GET和POST请求传的参数会自动转换赋值到@RequestParam 所注解的变量上

@RequestParam参数:

required 表示是否必须传,默认为 true。
defaultValue 表示可设置请求参数的默认值,若该参数为null时,会将默认值填充到参数上。
** value **为接收url的参数名(相当于key值)。
**name**属性是指定参数名

@RequestBody

  • 不支持get请求,因为get请求没有HttpEntity
  • 只能有一个@RequestBody
  • 不建议与@RequestParam一起使用,因为@RequestBody会将InputStream吃掉,造成后面的@RequestParam无法匹配到参数而报404
  • 支持json格式

Map<String, Object>接受request body,自己反序列化到各个entity中

参考:https://blog.csdn.net/weixin_38004638/article/details/99655322
https://www.cnblogs.com/zeroingToOne/p/8992746.html


版权声明:本文为CSL201816080304原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。