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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM