使用spring-boot-starter-validation做校验:
SpringBoot参数校验_Love皮的博客-CSDN博客_springboot参数校验
可能出现BindException、ConstraintViolationException、MethodArgumentNotValidException三种异常
常用的有:
@NotNull | 被注解的元素必须不为空 |
@NotBlank | 元素必须为字符串,不为空 |
@Min(value) | 被注解的元素必须是一个数字,其值必须大于等于指定的最大值 |
@Max(value) | 被注解的元素必须是一个数字,其值必须小于等于指定的最大值 |
@Size(max, min) | 被注解的元素的长度必须在指定的范围内 |
参数也可以定义成类,每个参数作为类的一个属性,在属性上使用注解
- public class UserForm {
- @ApiModelProperty(value = "页码")
- @Min(value = 1, message = "page最小为1")
- private Integer page = 1;
在函数参数中,使用@Valid才会生效 如果需要校验body,加上require = false控制是否必传 @RequestBody(require = false)
- @GetMapping(value = "/list")
- public Response list(@Valid UserForm form) {}
-
- @PostMapping(value = "/login")
- public Response login(@RequestBody(required = false) @Valid UserForm form) {}
如果不定义类,直接在函数参数中定义param,加上注解:
@RequestParam(value = "username", required = false, defaultValue = "goodman")
- @Validated
- @RestController
- @RequestMapping(value = "/role", produces = MediaType.APPLICATION_JSON_VALUE)
- public class RoleController {
-
- @GetMapping(value = "/getPerms")
- public Response getPerms( @NotNull(message = "id不能为空") Long id)