@RequestParam 注解是用于将请求参数映射到控制器方法的参数上的注解。它可以用于控制器的方法参数上,以将请求参数绑定到该方法的参数上。
例如,如果你有一个控制器方法,如下所示:
@GetMapping("/search")
public String search(@RequestParam("keyword") String keyword) {
// search logic here
return "searchResults";
}
当你在浏览器中访问 /search?keyword=myKeyword 时,这个方法会被调用,并且 keyword 参数会被赋值为 myKeyword。
@RequestParam 注解有几个可选的属性,其中一些可以控制参数的绑定行为:
required:指定参数是否必须提供。默认值为 true。
defaultValue:如果参数不存在或者为空,则使用该属性指定的默认值。
相比之下,@Param 注解是一个自定义注解,它可以用于将请求参数映射到方法参数上。它的使用方式与 @RequestParam 类似,但是需要额外提供一个名称,用于标识参数。
例如,如果你有一个控制器方法,如下所示:
@GetMapping("/search")
public String search(@Param("keyword") String keyword) {
// search logic here
return "searchResults";
}
当你在浏览器中访问 /search?keyword=myKeyword 时,这个方法会被调用,并且 keyword 参数会被赋值为 myKeyword。
与 @RequestParam 相比,@Param 注解没有可选的属性,也没有默认值的概念。如果在请求中找不到与 @Param 注解对应的参数,则该方法将不会被调用。
总的来说,@RequestParam 注解是 Spring 框架内置的注解,是专门用于将请求参数映射到方法参数上的。而 @Param 注解是自定义注解,具体的功能取决于注解的实现。通常情况下,使用 @RequestParam 注解更为常见。