@RequestParam
是Spring框架中用于处理HTTP请求参数的注解。它通常用于控制器(Controller)中的方法参数上,表示该参数的值将从HTTP请求的查询字符串中获取。
使用@RequestParam
注解可以指定参数的名称、默认值、是否必需等属性。
以下是一些常用的@RequestParam
注解的属性:
value
:指定参数的名称。例如:@RequestParam(value = "name")
,表示从请求的查询字符串中获取名为"name"的参数。required
:指定参数是否是必需的,默认为true
。如果设置为true
,当请求中没有提供该参数时,将抛出MissingServletRequestParameterException
异常。defaultValue
:指定参数的默认值。如果请求中没有提供该参数,将使用默认值。例如:@RequestParam(value = "name", defaultValue = "Guest")
,表示如果请求中没有名为"name"的参数,将使用默认值"Guest"。name
:与value
属性相同,用于指定参数的名称。在最新的Spring版本中,两者可以互换使用。dataType
:指定参数的数据类型。Spring会尝试将请求参数转换为指定的数据类型。defaultValue
:指定参数的默认值。下面是一个示例,演示如何在Spring控制器方法中使用@RequestParam
注解:
@Controller
public class MyController {
@GetMapping("/hello")
public String hello(@RequestParam("name") String name,
@RequestParam(value = "age", defaultValue = "18") int age) {
// 处理业务逻辑
return "hello";
}
}
在上述示例中,hello
方法使用了@RequestParam
注解来获取请求参数。name
参数是必需的,而age
参数有一个默认值。当客户端发送GET请求到/hello
路径时,可以附带查询字符串参数,例如:/hello?name=John&age=25
,Spring将会自动将查询字符串中的参数值赋给相应的方法参数。
这样,name
参数将被赋值为"John",age
参数将被赋值为25。如果请求中没有提供age
参数,将使用默认值18。