如何解決@NotBlank不生效的問題
解決@NotBlank不生效
在項(xiàng)目開發(fā)中,發(fā)現(xiàn)一個(gè)類中包含有另外一個(gè)類,這種包含關(guān)系的類上的@NotBlank校驗(yàn)不生效,后來發(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不生效,以及對(duì)象嵌套問題
問題1:
最近做一個(gè)新項(xiàng)目,寫新接口時(shí)發(fā)現(xiàn)@NotBlank @NotEmpty不生效,@NotNull則生效,令人費(fèi)解。通過搜索資料以及對(duì)項(xiàng)目依賴一步步排除發(fā)現(xiàn)項(xiàng)目中引入的jar包有問題,見紅色標(biāo)識(shí)出來的
刪除以上3個(gè)jar,新增org.hibernate后問題解決
用法:
step1、Controller層接口入?yún)⑻幖覢Validated注解(org.springframework.validation.annotation包的)
step2、入?yún)?duì)象的屬性上加@NotBlank 或@NotEmpty 或 @NotNull --均來自于javax.validation.constraints包下, 三者區(qū)別可百度
問題2:
循環(huán)嵌套問題,入?yún)?duì)象bean中 屬性也為javabean對(duì)象,也希望子對(duì)象中的屬性能夠被校驗(yàn)
用法: 在子對(duì)象屬性上面加@Valid 注解即可
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中CompleteFuture與Future的區(qū)別小結(jié)
本文主要介紹了java中CompleteFuture與Future的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12SpringBoot實(shí)現(xiàn)多數(shù)據(jù)源的切換實(shí)踐
這篇主要介紹了SpringBoot實(shí)現(xiàn)多數(shù)據(jù)源的切換,本文基于AOP來實(shí)現(xiàn)數(shù)據(jù)源的切換,文中通過示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下2022-03-03Java判斷List中相同值元素的個(gè)數(shù)實(shí)例
今天小編就為大家分享一篇Java判斷List中相同值元素的個(gè)數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07spring boot 監(jiān)控處理方案實(shí)例詳解
這篇文章主要介紹了spring boot 監(jiān)控處理方案的相關(guān)資料,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07Java如何使用正則表達(dá)式從字符串中提取數(shù)字
這篇文章主要介紹了Java如何使用正則表達(dá)式從字符串中提取數(shù)字問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Spring Boot JPA中使用@Entity和@Table的實(shí)現(xiàn)
這篇文章主要介紹了Spring Boot JPA中使用@Entity和@Table的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03前端存token后端獲取token代碼實(shí)例(Spring?Boot)
Token其實(shí)就是訪問資源的憑證,一般是用戶通過用戶名和密碼登錄成功之后,服務(wù)器將登陸憑證做數(shù)字簽名,加密之后得到的字符串作為token,這篇文章主要給大家介紹了關(guān)于前端存token,Spring?Boot后端獲取token的相關(guān)資料,需要的朋友可以參考下2024-07-07