开发Controller方法时传参的三个不同的注解:@RequestBody、@PathVariable和@RequestParam注解

1.@RequestBody 注解:

        定义:@RequestBody 注解用于从请求体中获取数据,并将其转换为指定的对象类型。它通常用于处理 POST 或 PUT 请求,其中请求体包含要创建或更新的对象数据。@RequestBody注解用于Spring MVC中的RESTful服务,用来接收HTTP请求的json/xml格式的数据,并将其转换成Java对象。当HTTP请求中包含json或xml格式的数据时,使用@RequestBody注解将请求体中的数据绑定到方法的参数上。这使得Spring MVC开发者能够很方便地将请求体的数据绑定到某个Java对象上,从而实现自动解析json/xml格式的数据。

         @RequestBody注解是Spring框架中常用的一个注解之一。它通常用于处理HTTP请求的消息体,将请求中的JSON或XML等数据绑定到Java对象上。当客户端向服务器发起请求时,请求的数据可以按照JSON或XML格式的方式放置在请求的消息体中,@RequestBody注解可以将这些数据提取出来并转化成我们所需要的Java对象,这样代码中就可以直接对这些对象进行操作。

        一般搭配Put和Post使用,因为需要把JSON和XML类型的数据放到请求体中,而后端一般会在接收的方法上用一个pojo类对象去接收它。

        实例:

        这是一个Post请求,在方法上声明@PostMapping,表示接收来自前端的Post请求。在方法的参数里使用一个user对象来接收请求体中的JSON或XML内容。

        这是一个Put请求,在方法上声明@PutMapping,表示接收来自前端的Put请求。在方法的参数里使用一个User对象来接收请求体中的JSON或XML内容。

2. @PathVariable注解:

        @PathVariable是spring3.0的一个新功能,可以用来接收请求路径中占位符的值。也就是说@PathVariable是用来映射 URL 绑定的占位符。我们可以通过 @PathVariable 可以将 URL 中占位符参数绑定到某个controller的方法的参数中,该参数可以通过URL 中的占位符拿到值。

        一般搭配Get、Delete请求使用,也就是要求只需要在URL中绑定简单的参数而无需像Post一样放在请求体中。http://localhost:8080/delect/ids

实例:

在参数ids之前加上该注解后就可以拿到URL中占位符上的,也就是前端请求过来的ids了。 注意需要两个ids相同,不然不能正常接收,也就是参数名一致。

3.@RequestParam注解:

        

        @RequestParam用于将请求参数绑定到你控制器的方法参数上。

        一般用于Get请求,也就是说要在controller方法上加上@GetMapping注解。有三个属性:value,required,defaultValue

        1)value:必须包含,且值必须与url中的参数一致。所以由此可见,之所以要配置该属性,就是为了保证controller方法上的参数可以正确识别前端发送过来的url中的参数。所以,如果你可以保证前端传过来比如一个http://localhost:8080/select?"name"=1,这里面的name和你后端方法上接收的参数一致,也就是说你后端也是同样的名字(name),那你就没有必要@RequestParam注解。(有时候我们需要通过路径后拼“?”的方式且参数不是一个单个值,而是一个数组来设置参数,那么这个时候应该把该注解加上,否则springboot框架无法正确的解析参数,也就无法正确的接收参数,而加上之后就可以用list集合来进行接收,springboot框架会帮我们解析前端传过来的参数)

        2)required:是否必需,默认为 true。即请求中必须包含该参数。

        3)defaultValue:默认值,如果设置了该值,required 将自动设为 false。适合在分页查询时,给参数page和pagesize设置默认值,比如page=1,pagesize=10:表示如果前端不传这两个值,那默认查询第一页,每页十条数据展示。

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值