RequestParamRequired详解

发布时间:2023-05-20

一、RequestParamRequired概述

RequestParamRequired是Spring在处理RESTful接口时用来获取参数的注解,它可以将参数从request中获取出来并转换为指定类型,同时可以指定是否必须传入参数。若不传入参数,则会抛出异常。 以下是示例代码:

@GetMapping("/user/{id}")
public UserDto getUser(@PathVariable("id") Long id, @RequestParam(required = true) String name) {
    return userService.getUser(id, name);
}

二、RequestParamRequired详解

1、required属性

required属性是@RequestParam的一个属性,默认值为true,意味着必须传入参数。 若设置为false,则允许参数不存在,如下所示:

@GetMapping("/user")
public List<userdto> getUsers(@RequestParam(required = false) String name) {
    return userService.getUsers(name);
}

可以不传入name参数。

2、defaultValue属性

defaultValue属性是@RequestParam的一个属性,用于指定参数默认值。 若未传入参数,则会使用defaultValue属性指定的默认值。

@GetMapping("/user")
public List<userdto> getUsers(@RequestParam(required = false, defaultValue = "all") String name) {
    return userService.getUsers(name);
}

若不传入name参数,则name参数默认值为"all"

3、name属性

name属性是@RequestParam的一个属性,用于指定传入参数的名称。

@GetMapping("/user")
public List<userdto> getUsers(@RequestParam(name = "user_name") String name) {
    return userService.getUsers(name);
}

若不指定name属性,则使用参数名作为参数名称。

4、value属性

value属性是@RequestParam的一个属性,与name属性功能相同,用于指定传入参数的名称。

@GetMapping("/user")
public List<userdto> getUsers(@RequestParam(value = "user_name") String name) {
    return userService.getUsers(name);
}

若不指定value属性,则使用参数名作为参数名称。

三、RequestParamRequired使用示例

@GetMapping("/user/{id}")
public UserDto getUser(@PathVariable("id") Long id, @RequestParam(required = true) String name) {
    return userService.getUser(id, name);
}

以上接口中,必须传入参数name,否则会抛出异常。 以下接口中,默认会传入参数name,若不传入,则默认值为"default_name"

@GetMapping("/user")
public List<userdto> getUsers(@RequestParam(required = false, defaultValue = "default_name") String name) {
    return userService.getUsers(name);
}

以下接口中,必须传入参数user_name,否则会抛出异常。

@GetMapping("/user")
public List<userdto> getUsers(@RequestParam(name = "user_name", required = true) String name) {
    return userService.getUsers(name);
}

四、结语

通过以上的示例代码,我们可以更好地理解RequestParamRequired的用法。在使用RESTful接口时,RequestParamRequired是极为重要的,它可以帮我们处理参数并抛出异常,提高代码的健壮性。