如何解決@NotBlank不生效的問題
解決@NotBlank不生效
在項目開發(fā)中,發(fā)現(xiàn)一個類中包含有另外一個類,這種包含關(guān)系的類上的@NotBlank校驗不生效,后來發(fā)現(xiàn)需要在內(nèi)部的類的域上加上@Valid注解,如下:
/** * 標簽體系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; /** * 條件表達式 */ @NotBlank(message = "00001003") @Length(max = 200, message = "00001004") private String templateConditionExpr; /** * 排序 */ private Integer sort; /** * 條件模板字段數(shù)據(jù) */ @Valid @NotEmpty(message = "00001005") private List<PotentialConColParam> conTemplatesCols;
/** * 標簽代碼 */ @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包有問題,見紅色標識出來的
刪除以上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é),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-12-12SpringBoot實現(xiàn)多數(shù)據(jù)源的切換實踐
這篇主要介紹了SpringBoot實現(xiàn)多數(shù)據(jù)源的切換,本文基于AOP來實現(xiàn)數(shù)據(jù)源的切換,文中通過示例代碼介紹的非常詳細,感興趣的小伙伴們可以參考一下2022-03-03Spring Boot JPA中使用@Entity和@Table的實現(xiàn)
這篇文章主要介紹了Spring Boot JPA中使用@Entity和@Table的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03前端存token后端獲取token代碼實例(Spring?Boot)
Token其實就是訪問資源的憑證,一般是用戶通過用戶名和密碼登錄成功之后,服務(wù)器將登陸憑證做數(shù)字簽名,加密之后得到的字符串作為token,這篇文章主要給大家介紹了關(guān)于前端存token,Spring?Boot后端獲取token的相關(guān)資料,需要的朋友可以參考下2024-07-07