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/

上一篇 下一篇

猜你喜欢

热点阅读