@PathVariable和@RequestParam区别

86 阅读1分钟

@PathVariable@RequestParam是在Spring框架中常用的注解,用于从URL中获取参数值。它们之间的主要区别在于参数的来源和用法:

@PathVariable

  • 来源: @PathVariable用于从URL模板中提取值,通常用于获取RESTful风格的URL中的参数。
  • 例子:/users/{id} 这样的路径中,id就可以被@PathVariable注解捕获。
  • 使用: 在方法参数中使用@PathVariable注解来声明路径变量。
  • 示例:
@GetMapping("/users/{id}")
public User getUserById(@PathVariable Long id) {
    // 根据id获取用户信息
}

@RequestParam

  • 来源: @RequestParam用于从请求的查询参数中获取值,即从URL中?key=value这样的查询字符串中提取参数值。
  • 使用: 可以在方法参数中使用@RequestParam注解来获得请求参数。
  • 示例:
@GetMapping("/users")
public List<User> getUsersByRole(@RequestParam(value="role",required = false) String role) {
    // 根据角色获取用户列表
}

区别总结:

  1. 来源区别: @PathVariable从URL路径中获取参数,@RequestParam从查询参数中获取;
  2. 用途区别: @PathVariable适用于RESTful风格的URL,用于提取路径中的变量;@RequestParam用于从查询参数中提取参数;