Spring Boot 中常用的注解@RequestParam
@RequestParam
是 Spring Framework 和 Spring Boot 中常用的注解之一,用于从请求中获取参数值。它通常用于处理 HTTP 请求中的查询参数(query parameters)或表单数据。下面详细解释 @RequestParam
的用法:
@RequestParam
的主要用法如下:
-
基本用法:
使用
@RequestParam
注解,您可以将请求中的参数绑定到方法的参数。例如,假设您有一个请求 URLhttp://example.com/api/user?id=123
,您可以使用@RequestParam
来获取id
参数的值:java@GetMapping("/api/user") public String getUserInfo(@RequestParam("id") int userId) { // 使用 userId 值来执行操作 return "User ID: " + userId; }
在这个示例中,
@RequestParam("id")
用于将 HTTP 请求中名为id
的参数的值绑定到userId
方法参数上。 -
默认值:
您可以为
@RequestParam
指定一个默认值,以便在参数未出现在请求中时使用默认值:java@GetMapping("/api/user") public String getUserInfo(@RequestParam(name = "id", defaultValue = "1") int userId) { // 如果请求中没有 id 参数,userId 将默认为 1 return "User ID: " + userId; }
-
多个参数:
您可以使用多个
@RequestParam
注解来获取多个参数值:java@GetMapping("/api/user") public String getUserInfo(@RequestParam("id") int userId, @RequestParam("name") String userName) { // 使用 userId 和 userName 执行操作 return "User ID: " + userId + ", User Name: " + userName; }
-
Map 接收多个参数:
如果您不知道参数的名称或希望一次接收多个参数,可以将参数封装到一个
Map
中:java@GetMapping("/api/user") public String getUserInfo(@RequestParam Map<String, String> params) { String id = params.get("id"); String name = params.get("name"); // 使用 id 和 name 执行操作 return "User ID: " + id + ", User Name: " + name; }
-
数组接收多个参数:
您还可以将多个参数绑定到数组或列表中:
java@GetMapping("/api/users") public String getUsersInfo(@RequestParam("id") int[] userIds) { // userIds 是一个整数数组,包含了请求中的所有 id 参数值 return "User IDs: " + Arrays.toString(userIds); }
总之,@RequestParam
注解是用于从 HTTP 请求中获取参数值的非常有用的注解,它允许您轻松地处理查询参数或表单数据,并将它们绑定到方法的参数上,以便在 Spring Boot 应用程序中进行处理。