zoukankan      html  css  js  c++  java
  • java注解@Valid@Validated表单验证

     依赖

    spring-boot-starter-web 版本2.x中早期依赖有 `hibernate-validator`,后被移出。

    使用验证需另外引入依赖:

    <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>

    或者(二选一)

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.1.7.Final</version>
    </dependency>

    1.分组验证,参数太多不想一一分组

    分组的类继承package javax.validation.groups 下的Default

    分组验证遇到的坑

    2.@Valid和@Validated的区分

    @Validated是@Valid 的一次封装,是Spring提供的校验机制使用。

    @Valid不提供分组功能

    @Validated不提供嵌套验证功能。嵌套验证需要在对应的嵌套属性前加@Valid

    @Valid和@Validated的总结区分

    https://blog.csdn.net/gaojp008/article/details/80583301

    https://www.cnblogs.com/guchunchao/p/9860337.html

    https://blog.csdn.net/qq_27680317/article/details/79970590

    3.验证注解

    限制说明
    @Null 限制只能为null
    @NotNull 限制必须不为null
    @AssertFalse 限制必须为false
    @AssertTrue 限制必须为true
    @DecimalMax(value) 限制必须为一个不大于指定值的数字
    @DecimalMin(value) 限制必须为一个不小于指定值的数字
    @Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
    @Future 限制必须是一个将来的日期
    @Max(value) 限制必须为一个不大于指定值的数字
    @Min(value) 限制必须为一个不小于指定值的数字
    @Past 限制必须是一个过去的日期
    @Pattern(value) 限制必须符合指定的正则表达式
    @Size(max,min) 限制字符长度必须在min到max之间
    @Past 验证注解的元素值(日期类型)比当前时间早
    @NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
    @NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
    @Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

    Spring Boot 参数校验:https://www.cnblogs.com/cjsblog/p/8946768.html

  • 相关阅读:
    Linux注意到Makefile
    coco2dx c++ HTTP实现
    怎么样putty打开图形化管理工具,在终端上
    javabean总结
    发布Ubuntu/Linux系统cache,增加可用内存空间
    Java获得正则表达式
    uva 11992 为矩阵更新查询段树
    oracle在schema是什么意思?
    zoj 3288 Domination (可能dp)
    学习算法
  • 原文地址:https://www.cnblogs.com/foolash/p/12103975.html
Copyright © 2011-2022 走看看