欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關于el-form表單驗證中的validator與validate使用時的問題

 更新時間:2023年06月21日 09:05:20   作者:lerojon  
這篇文章主要介紹了關于el-form表單驗證中的validator與validate使用時的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

el-form表單驗證中的validator與validate使用問題

當在使ElementUI el-form組件用自定義表單驗證規(guī)則的時候,必須保證自定義校驗規(guī)則的每一層都調(diào)用了callback方法,否則會導致el-form組件的validate方法無法進入回調(diào)函數(shù)。

//這樣寫才能進入validate回調(diào)
certfNo: [
          { required: true, message: "證件號碼不能為空", trigger: "blur" },
          {
            trigger: "blur",
            validator: function(rule, value, callback) {
              if (!validIdCard(value)) {
                return callback(new Error("請輸入正確的證件號碼"));
              }
               //外面一層也要調(diào)用回調(diào)
              return callback();
            }
          }
        ]
//如果是這樣寫的話是無法validate回調(diào)的
certfNo: [
          { required: true, message: "證件號碼不能為空", trigger: "blur" },
          {
            trigger: "blur",
            validator: function(rule, value, callback) {
              if (!validIdCard(value)) {
               callback(new Error("請輸入正確的證件號碼"));
              }
            }
          }
        ]

記Validator.validate造成的重大問題

問題場景 

類A繼承類B,類A,B有相同的字段,并且都用了@NotBlank注解。

在參數(shù)都設置正確的情況下,使用Validator.validate校驗類A參數(shù)是否符合規(guī)則時,報錯參數(shù)不符合規(guī)則

代碼如下

//實體類
@Data
public class A extends B {
? ? @NotBlank
? ? private String name;
? ? private String score;
? ? @Valid
? ? private C c;
}
@Data
public class B {
? ? @NotBlank
? ? private String name;
? ? private String score;
}
@Data
public class C {
? ? @NotBlank
? ? private String age;
? ? private String sex;
}
//設置值
public .... pottBean(){
? ? ?A a=new A();
? ? ?a.setName("小明");
? ? check(a);
}
//校驗方法
public .....check(Object obj){
? ? Validator validator = ?Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(obj);
? //這個地方校驗出來的,就是不符合規(guī)則的參數(shù)名,發(fā)現(xiàn)name也在其中,我也設置了值 ,百思不解
}

后來查找多方資料得知,Validator的驗證組概念。

Bean Validation 規(guī)范中一個重要的概念,就是組和組序列。組定義了約束的子集。

對于一個給定的 Object Graph 結構,有了組的概念,則無需對該 ObjectGraph 中所有的約束進行驗證,只需要對該組定義的一個子集進行驗證即可。

完成組別驗證需要在約束聲明時進行組別的聲明,否則使用默認的組 Default.class。組也有繼承的屬性。

對某一組別進行約束驗證的時候,也會對其所繼承的基類進行驗證。所以當我校驗A參數(shù)時候,會對基類B進行校驗

苦逼的我又一次栽在這個地方了,當需要校驗實體類中的包含的對象時候,需要在該對象上添加@Valid注解 , 長點心吧~

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue $router和$route的區(qū)別詳解

    vue $router和$route的區(qū)別詳解

    這篇文章主要介紹了vue $router和$route的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • vue中如何將日期轉(zhuǎn)換為指定的格式

    vue中如何將日期轉(zhuǎn)換為指定的格式

    這篇文章主要介紹了vue中如何將日期轉(zhuǎn)換為指定的格式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue中解決異步交互數(shù)據(jù)出現(xiàn)延遲問題

    vue中解決異步交互數(shù)據(jù)出現(xiàn)延遲問題

    這篇文章主要介紹了vue中解決異步交互數(shù)據(jù)出現(xiàn)延遲問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • vue watch深度監(jiān)聽對象實現(xiàn)數(shù)據(jù)聯(lián)動效果

    vue watch深度監(jiān)聽對象實現(xiàn)數(shù)據(jù)聯(lián)動效果

    這篇文章主要介紹了vue watch深度監(jiān)聽對象實現(xiàn)數(shù)據(jù)聯(lián)動的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • vue高級組件之provide與inject使用及說明

    vue高級組件之provide與inject使用及說明

    這篇文章主要介紹了vue高級組件之provide與inject使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • JavaScript 沙箱探索

    JavaScript 沙箱探索

    這篇文章主要介紹了JavaScript 沙箱探索,沙箱是基于 event bus 形式的通信實現(xiàn)上層的功能,文章的例子選擇接口實現(xiàn)了 web worker 與 quickjs 的 EventEmitter,,需要的朋友可以參考一下
    2021-10-10
  • vue通過cookie獲取用戶登錄信息的思路詳解

    vue通過cookie獲取用戶登錄信息的思路詳解

    這篇文章主要介紹了vue通過cookie獲取用戶登錄信息的思路詳解,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • Vue自定義Form組件實現(xiàn)方法介紹

    Vue自定義Form組件實現(xiàn)方法介紹

    這篇文章主要介紹了Vue自定義Form組件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-10-10
  • Vue3安裝dataV報錯問題解決方案

    Vue3安裝dataV報錯問題解決方案

    這篇文章主要給大家介紹了關于Vue3安裝dataV報錯問題解決方案的相關資料,dataV用于大屏展示,個人覺得比echarts簡單很多,需要的朋友可以參考下
    2023-06-06
  • Vue中的計算屬性computed傳參方式

    Vue中的計算屬性computed傳參方式

    這篇文章主要介紹了Vue中的計算屬性computed傳參方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論