SpringMVC中@RequestParam和@RequestBody传参问题
这里使用的是**@RequestMapping**,不指定GET或POST
不加注解时
使用GET请求,在Params中指定key、value即可正常接收到数据,需要注意的是这里的key必须和后台接收的参数名保持一致。
不一致无法赋值
传递多个参数时,方式相同。
使用POST请求时,需要把参数放在body中,同样参数名要保持一致。
只传递一个参数也可正常接收。
@RequestParam
使用@RequestParam的参数,必须传递,且要和括号中的名称保持一致,Get方式同理。
@RequestBody
- 传递单个对象
使用json格式传参,可传User对象部分属性值,其余属性为默认值。 - 传递对象集合
请注意传参格式为[{},{},{}…] - 传递较复杂的对象
请注意这里的入参格式为{“xx”:“xx”,“xx”:“xx”,“honors”:[“xx”,“xx”,…],“teamMembers”:[{},{},{},…]},同样未赋值的属性为默认值。 - 传递多个参数
这里可以把多个参数放入静态内部类,一次接收,不会影响其他的类以及已经定义好的model类。
多参数、少参数都不受影响
以下写法是错误的:
原因是request的content-body是以流的形式进行读取的,读取完一次后,便无法再次读取了。