测试无注解,@RequestBody,@RequestParam

pringmvc用了也有一段时间了。可是对于@RequestBody,@RequestParam注入参数的方式还不是很懂,下面通过具体的例子来测试这两个注解的异同。

分别使用表单,postman进行测试(post请求)

表单

无注解:
前端:
测试无注解,@RequestBody,@RequestParam

后台:
测试无注解,@RequestBody,@RequestParam
结果:
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam

postman

测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
总结:除了json格式请求,全部可以获取到参数数据

@RequestParam:

表单:
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam

postman
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam

测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
发现用json请求报了个warning
于是百度:
测试无注解,@RequestBody,@RequestParam

总结:除了不支持json格式,其他的全部可以获取请求参数

@RequestBody:

表单:
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam

postman:

测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
总结:只有json格式的能获取到参数,那么传json数组怎样?抱着好奇心,再试

后台定义list参数接收数组
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
发现直接报错
直接换数组接收
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam

还是报错

换成用String接收可以进来 那么怎么解析呢
为了方便,引入fastjson
测试无注解,@RequestBody,@RequestParam
测试无注解,@RequestBody,@RequestParam
发现值已经解析处理了 (key为list,值为1,2,3)

最后总结,使用@RequestBody注解时,只能使用json格式传参数,如果传入的是数组,需要进一步解析。

拓展(网上截的图):
测试无注解,@RequestBody,@RequestParam