controller层接收参数的注意事项,和三个注解的说明

2、springboot的请求体参数如何接收,url路径接收和请求体接收参数

使用@requestbody接收参数时是有要求的,根据我的推断是这样的:

承载@requestbody接收到的参数的变量,必须是一个类

比如,接收到的json对象是{name='github'},

用【String name】就不行,因为String基本算是一个基本类型,其内没有成员变量

但是,【class user{private String name】就可以接收。

值得一提的是,网上有这样一种说法:@requestbody只能接收json字符串,不能接收json对象,但我看博文的发布日期都是19年之前了,现在23年应该已经可以直接接收json对象了

我问了做vue的前端,说,从来都是直接传json对象的

 

@PathVariable

@PathVariable 注解主要是用来获取 url 参数,Spring Boot 支持 restfull 风格的 url,比如一个 GET
请求携带一个参数 id 过来,我们将 id 作为参数接收,可以使用 @PathVariable 注解

 

@RequestParam
GET用法
@RequestParam也是获取请求参数的,那么@RequestParam和@PathVariable有什么不同呢?

主要区别在于:
@PathValiable 是从 url 模板中获取参数值, 即这种风格的 url:http://localhost:8088/test/testPathVariable/{id} ;

@RequestParam 是从 request 里面获取参数值,即这种风格的 url: http://localhost:8088/test/testRequestparam?id=1

POST用法

@RequestParam注解还可以用于POST请求,接收前端表单提交的参数,假如前端通过表单提交username和
password两个参数,那我们可以使用@RequestParam来接收,用法和上面一样

@RequestBody

@RequestBody注解用于接收前端传来的实体,接收参数也是对应的实体,比如前端通过 json 提交传
来两个参数 username 和password‘

参考:

 (4条消息) Springboot中参数传递的三个注解的使用_潮汐先生的博客-CSDN博客

(4条消息) Post请求中@RequestParam和@RequestBody的混合使用_liberg的博客-CSDN博客_@requestparam post请求

posted on 2023-01-09 10:34  影子BLH  阅读(745)  评论(0)    收藏  举报