如何解決@NotBlank不生效的問題
解決@NotBlank不生效
在項目開發(fā)中,發(fā)現(xiàn)一個類中包含有另外一個類,這種包含關(guān)系的類上的@NotBlank校驗不生效,后來發(fā)現(xiàn)需要在內(nèi)部的類的域上加上@Valid注解,如下:
/**
* 標(biāo)簽體系ID
*/
@NotBlank(message = "00000002")
@Length(max = 20, message = "00000005")
private String systemId;
/**
* 條件模板id
*/
private String templateId;
/**
* 條件模板代碼
*/
private String templateCode;
/**
* 條件模板名稱
*/
@NotBlank(message = "00001001")
@Length(max = 20, message = "00001002")
private String templateName;
/**
* 條件表達(dá)式
*/
@NotBlank(message = "00001003")
@Length(max = 200, message = "00001004")
private String templateConditionExpr;
/**
* 排序
*/
private Integer sort;
/**
* 條件模板字段數(shù)據(jù)
*/
@Valid
@NotEmpty(message = "00001005")
private List<PotentialConColParam> conTemplatesCols;
/**
* 標(biāo)簽代碼
*/
@NotBlank(message = "00001006")
@Length(max = 64, message = "00001007")
private String labelCode;
/**
* 條件名稱
*/
@NotBlank(message = "00001008")
@Length(max = 20, message = "00001009")
private String conditionName;
/**
* 操作符
*/
@NotBlank(message = "00001010")
@Length(max = 20, message = "00001011")
private String operation;
/**
* 條件賦值
*/
@NotBlank(message = "00001012")
@Length(max = 20, message = "00001013")
private String conditionValue;
@NotBlank @NotEmpty不生效,以及對象嵌套問題
問題1:
最近做一個新項目,寫新接口時發(fā)現(xiàn)@NotBlank @NotEmpty不生效,@NotNull則生效,令人費解。通過搜索資料以及對項目依賴一步步排除發(fā)現(xiàn)項目中引入的jar包有問題,見紅色標(biāo)識出來的

刪除以上3個jar,新增org.hibernate后問題解決

用法:
step1、Controller層接口入?yún)⑻幖覢Validated注解(org.springframework.validation.annotation包的)
step2、入?yún)ο蟮膶傩陨霞覢NotBlank 或@NotEmpty 或 @NotNull --均來自于javax.validation.constraints包下, 三者區(qū)別可百度
問題2:
循環(huán)嵌套問題,入?yún)ο骲ean中 屬性也為javabean對象,也希望子對象中的屬性能夠被校驗
用法: 在子對象屬性上面加@Valid 注解即可

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中CompleteFuture與Future的區(qū)別小結(jié)
本文主要介紹了java中CompleteFuture與Future的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
SpringBoot實現(xiàn)多數(shù)據(jù)源的切換實踐
這篇主要介紹了SpringBoot實現(xiàn)多數(shù)據(jù)源的切換,本文基于AOP來實現(xiàn)數(shù)據(jù)源的切換,文中通過示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下2022-03-03
Java如何使用正則表達(dá)式從字符串中提取數(shù)字
這篇文章主要介紹了Java如何使用正則表達(dá)式從字符串中提取數(shù)字問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Spring Boot JPA中使用@Entity和@Table的實現(xiàn)
這篇文章主要介紹了Spring Boot JPA中使用@Entity和@Table的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
前端存token后端獲取token代碼實例(Spring?Boot)
Token其實就是訪問資源的憑證,一般是用戶通過用戶名和密碼登錄成功之后,服務(wù)器將登陸憑證做數(shù)字簽名,加密之后得到的字符串作為token,這篇文章主要給大家介紹了關(guān)于前端存token,Spring?Boot后端獲取token的相關(guān)資料,需要的朋友可以參考下2024-07-07

