springboot validation之参数校验
2020-10-15 本文已影响0人
前进的码农
引入pom文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
编写代码
控制层
@PostMapping("login")
public R login(@RequestBody @Validated LoginDTO loginDTO){
return new R(1,loginDTO,"success");
}
传输层
@Data
public class LoginDTO {
@NotBlank(message = "不能为空")
private String name;
private String pwd;
@NotNull
private String tel;
private String email;
}
异常捕获返回给前端
@ExceptionHandler(value = MethodArgumentNotValidException.class)
@ResponseBody
public R handleBindException(MethodArgumentNotValidException e) throws BindException {
R r = new R(401,null,e.getMessage());
log.info("BindException", e);
return r;
}
其他校验
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式
Hibernate Validator提供的校验注解:
@NotBlank(message =) 验证字符串非null,且trim后长度必须大于0
@Email 被注释的元素必须是电子邮箱地址
@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range(min=,max=,message=) 被注释的元素必须在合适的范围内
Git完整代码
https://gitee.com/ethanlab/validation
官方文档
https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/