zoukankan      html  css  js  c++  java
  • 数据校验-hibernate-validator

    数据校验
    在web开发时,对于请求参数,一般上都需要进行参数合法性校验的,原先的写法时一个个字段一个个去判断,这种方式太不通用了,所以java的JSR 303: Bean Validation规范就是解决这个问题的。
    
    JSR 303只是个规范,并没有具体的实现,目前通常都是才有hibernate-validator进行统一参数校验。
    
    JSR303定义的校验类型
    
    Constraint	详细信息
    @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(value)	被注释的元素必须符合指定的正则表达式
    Hibernate Validator 附加的 constraint
    
    Constraint	详细信息
    @Email	被注释的元素必须是电子邮箱地址
    @Length	被注释的字符串的大小必须在指定的范围内
    @NotEmpty	被注释的字符串的必须非空
    @Range	被注释的元素必须在合适的范围内
    创建实体类
    
    @Data
    
    @NoArgsConstructor
    
    @AllArgsConstructor
    
    public class DemoReq {
    
         
    
        @NotBlank(message="code不能为空")
    
        String code;
    
        @Length(max=10,message="name长度不能超过10")
    
        String name;
    
    }
    
    然后在控制层方法里,加入@Valid即可,这样在访问前,会对请求参数进行检验。
    
    
    @GetMapping("/demo/valid")
    
    public String demoValid(@Valid DemoReq req) {
    
        return req.getCode() + "," + req.getName();
    
    }
    

      

  • 相关阅读:
    理解Linux 的CPU Load和CPU利用率
    Linux进程和信号超详细分析
    Linux 磁盘配额
    linux磁盘阵列raid详解
    Linux LVM管理
    Linux fstab文件详解
    Linux 磁盘管理
    sourceTree的使用
    Logstash 参考指南(Kafka输入插件)
    ELK的一次吞吐量优化
  • 原文地址:https://www.cnblogs.com/Struts-pring/p/10962036.html
Copyright © 2011-2022 走看看