JAVA中@PathVariable,@RequestBody,@RequestParam的用法

一、
@PathVariable 注解可用于处理请求 URI 映射中的模板变量,并将其绑定到 Controller 方法参数。
示例
@GetMapping("/api/employees/{id}")
@ResponseBody
public String getEmployeesById(@PathVariable String id) {
    return "ID: " + id;
}
在本例中,使用 @PathVariable 注解来提取 URI 的模板部分,该部分由变量 {id} 表示。
指定 PATH (路径)变量名
由于方法参数和路径变量的名称相同,可以不用主动设置模板路径变量的名称。
如果路径变量名不同,可以在 @PathVariable 注解的参数中指定:
@GetMapping("/api/employeeswithvariable/{id}")
@ResponseBody
public String getEmployeesByIdWithVariableName(@PathVariable("id") String employeeId) {
    return "ID: " + employeeId;
}
二、
@RequestBody 注解是 Spring Framework 中用于标识方法参数的注解,它指示框架从请求体中获取数据,并将其转换为指定类型的 Java 对象。这使得开发者可以将客户端发送的 JSON 或 XML 数据映射到 POJO(普通 Java 对象)上,从而更加方便地处理请求数据。
@RequestBody 基本用法
以下是 @RequestBody 注解的基本用法:
@RestController
public class UserController {
   

    @PostMapping("/users")
    public ResponseEntity<User> createUser(@RequestBody User user) {
   
        // 在这里处理 user 对象
        // ...
        return ResponseEntity.status(HttpStatus.CREATED).body(user);
    }
}
在上述示例中,@RequestBody 注解标识的 User 参数会自动从请求体中解析,然后映射为 User 对象。
在使用 @RequestBody 注解时,需要注意以下事项:
数据转换:@RequestBody 注解默认使用框架提供的消息转换器,可以将 JSON、XML 等数据转换为 Java 对象。
请求方法:@RequestBody 注解通常用于处理 POST 或 PUT 请求,用于接收客户端发送的数据。
数据校验:在接收到请求体数据后,开发者应该进行适当的数据校验,以确保数据的完整性和准确性。
三、
@RequestParam
主要用于将请求参数区域的数据映射到控制层方法的参数上

8c7b9be0dc864534ae5874f154faa0c8.png
我们需要知道@RequestParam注解主要有哪些参数
value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value=“page”,则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据

required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值