@RequestParam和@RequestBody的区别

Posted kikochz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@RequestParam和@RequestBody的区别相关的知识,希望对你有一定的参考价值。

#@RequestParam()

  • 如果参数前写了@RequestParam(xxx), 那么前端必须有对应的xxx名字才行(不管其是否有值), 如果没有

    xxx的话, 就和报错, 400

    如果参数前不写@RequestParam(xxx)的话,那么就前端可以有, 也可以没有对应的xxx

  • 能接收地址栏的参数, 也可以接收json对象, 但是不能接收json串

  • 如果@requestParam注解的参数是int类型,并且required=false,此时如果不传参数的话,会报错。原因是,required=false时,不传参数的话,会给参数赋值null,这样就会把null赋值给了int,因此会报错。

#@RequestBody()

  • 接收前端Content-Type为application/json的json串(不能是json对象), 由于get没有请求体, 所以没有Content-Type,发送的请求必须是post

  •  

以上是关于@RequestParam和@RequestBody的区别的主要内容,如果未能解决你的问题,请参考以下文章

Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported for @RequestBod

@RequestParam和@RequestBody的区别

@RequestBody和@RequestParam区别

@RequestBody和@RequestParam区别

@RequestBody和@RequestParam区别

@RequestBody 和 @RequestParam 有啥区别?