@RequestParam注解的作用和示例

@RequestParam注解是Spring框架中常用的注解之一,用于从HTTP请求中获取请求参数的值,并将其映射到Controller方法的参数中。通过使用@RequestParam注解,可以获取普通表单提交请求中的参数值,并传递给Controller中的方法进行处理。

下面是一个使用@RequestParam注解的示例:

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/get")
    public String getUser(@RequestParam Long id, Model model) {
        User user = userService.findById(id);
        model.addAttribute("user", user);
        return "user_detail";
    }

    @GetMapping("/list")
    public String getUserList(@RequestParam(required = false, defaultValue = "1") int page, Model model) {
        List<User> userList = userService.getUserList(page);
        model.addAttribute("userList", userList);
        return "user_list";
    }
}

在上面的示例中,使用@Controller注解声明了一个名为UserController的类,并使用@RequestMapping注解标记了类级别的请求路径为”/user”。接着,在方法getUser()上使用@GetMapping注解,定义了一个GET请求的URL路径为”/get”。当请求该路径时,会调用getUser()方法,并使用@RequestParam注解获取名为”id”的请求参数的值,并将其转换为Long类型,并将其传递给getUser()方法进行处理。方法getUser()会根据传入的id值从数据库中查询到相应的User对象,并将该对象添加到Model对象中,返回一个名为”user_detail”的模板视图。

在方法getUserList()中,@RequestParam注解的属性有required和defaultValue,其中required属性用于指定请求参数是否必须存在,默认为true,当该属性值为false时,可以在请求中不传递该参数,方法中对应的参数值将为null;defaultValue属性用于指定请求参数的默认值,当请求中没有传递该参数时,将使用该属性指定的默认值。方法getUserList()会根据传入的page值从数据库中查询到相应的User列表,并将该列表添加到Model对象中,返回一个名为”user_list”的模板视图。

需要注意的是,如果请求参数名称与方法参数名称一致,则@RequestParam注解可以省略名称属性,直接使用@RequestParam注解即可。如果请求参数名称和方法参数名称不一致,则需要使用@RequestParam注解的名称属性来指定请求参数的名称。同时,@RequestParam注解也支持指定默认值和是否必须存在等属性,可以根据实际需要进行配置。