@PathVariable和@RequestParam
时间: 2023-06-30 16:20:57 浏览: 51
`@PathVariable` 和 `@RequestParam` 都是 Spring MVC 中用于获取请求参数的注解,不同的是它们获取参数的方式不同。
`@PathVariable` 用于获取 URL 中的参数,例如:
```java
@GetMapping("/users/{id}")
public User getUserById(@PathVariable Long id) {
// 根据 id 查询用户信息
return userService.getUserById(id);
}
```
在上述代码中,`@PathVariable` 注解用于获取 URL 中的 `id` 参数,并将其转换为 `Long` 类型,然后通过 `userService.getUserById(id)` 方法查询相应的用户信息。
`@RequestParam` 用于获取请求参数,例如:
```java
@GetMapping("/users")
public List<User> getUsersByPage(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer size) {
// 根据 page 和 size 参数查询用户信息
return userService.getUsersByPage(page, size);
}
```
在上述代码中,`@RequestParam` 注解用于获取请求参数中的 `page` 和 `size` 参数,并将其转换为 `Integer` 类型,然后通过 `userService.getUsersByPage(page, size)` 方法查询相应的用户信息。其中 `defaultValue` 属性用于设置默认值,当请求中没有相应的参数时,会使用默认值进行处理。
总之,`@PathVariable` 用于获取 URL 中的参数,`@RequestParam` 用于获取请求参数,两者都可以用于控制器方法的参数上。