跳到主要内容

简述@RequestParam 和 @PathVariable 两个注解的区别 ?

参考答案:

@RequestParam@PathVariable 都是 Spring MVC 中用于处理 HTTP 请求参数的注解,但它们在使用和用途上有一些区别。

  1. @RequestParam:这个注解主要用于处理查询参数(query parameters)或者表单参数(form parameters)。查询参数是 URL 中 ? 之后的部分,例如 http://example.com/api?param1=value1&param2=value2 中的 param1param2。表单参数则是通过 HTML 表单提交的参数。@RequestParam 注解可以用在方法参数上,通过 value 属性指定参数的名称,通过 required 属性指定参数是否必须。例如:
@RequestMapping("/example")
public String handleRequest(@RequestParam("param1") String param1, 
                            @RequestParam(value = "param2", required = false) String param2) {
    // ...
}
  1. @PathVariable:这个注解主要用于处理路径参数(path variables)。路径参数是 URL 路径中的一部分,通常用于表示资源的唯一标识。例如,在 http://example.com/users/123 这个 URL 中,123 就是一个路径参数。@PathVariable 注解可以用在方法参数上,通过 value 属性指定路径参数的名称。例如:
@RequestMapping("/users/{id}")
public String handleRequest(@PathVariable("id") String id) {
    // ...
}

总的来说,@RequestParam@PathVariable 的主要区别在于它们处理的参数类型不同:@RequestParam 主要用于处理查询参数和表单参数,而 @PathVariable 主要用于处理路径参数。