SpringMVC中@RequestParam和@RequestBody传参问题

这里使用的是**@RequestMapping**,不指定GET或POST

不加注解时

SpringMVC中@RequestParam和@RequestBody传参问题
使用GET请求,在Params中指定key、value即可正常接收到数据,需要注意的是这里的key必须和后台接收的参数名保持一致。SpringMVC中@RequestParam和@RequestBody传参问题
不一致无法赋值
SpringMVC中@RequestParam和@RequestBody传参问题
传递多个参数时,方式相同。
SpringMVC中@RequestParam和@RequestBody传参问题SpringMVC中@RequestParam和@RequestBody传参问题
使用POST请求时,需要把参数放在body中,同样参数名要保持一致。
SpringMVC中@RequestParam和@RequestBody传参问题
只传递一个参数也可正常接收。
SpringMVC中@RequestParam和@RequestBody传参问题

@RequestParam

SpringMVC中@RequestParam和@RequestBody传参问题
使用@RequestParam的参数,必须传递,且要和括号中的名称保持一致,Get方式同理。
SpringMVC中@RequestParam和@RequestBody传参问题

@RequestBody

  1. 传递单个对象
    SpringMVC中@RequestParam和@RequestBody传参问题
    SpringMVC中@RequestParam和@RequestBody传参问题
    使用json格式传参,可传User对象部分属性值,其余属性为默认值。
  2. 传递对象集合
    SpringMVC中@RequestParam和@RequestBody传参问题
    请注意传参格式为[{},{},{}…]
    SpringMVC中@RequestParam和@RequestBody传参问题
  3. 传递较复杂的对象
    SpringMVC中@RequestParam和@RequestBody传参问题
    SpringMVC中@RequestParam和@RequestBody传参问题
    请注意这里的入参格式为{“xx”:“xx”,“xx”:“xx”,“honors”:[“xx”,“xx”,…],“teamMembers”:[{},{},{},…]},同样未赋值的属性为默认值。
    SpringMVC中@RequestParam和@RequestBody传参问题
  4. 传递多个参数
    这里可以把多个参数放入静态内部类,一次接收,不会影响其他的类以及已经定义好的model类。
    SpringMVC中@RequestParam和@RequestBody传参问题
    SpringMVC中@RequestParam和@RequestBody传参问题
    多参数、少参数都不受影响
    SpringMVC中@RequestParam和@RequestBody传参问题
    以下写法是错误的:
    SpringMVC中@RequestParam和@RequestBody传参问题
    SpringMVC中@RequestParam和@RequestBody传参问题
    原因是request的content-body是以流的形式进行读取的,读取完一次后,便无法再次读取了。