最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于el-form表單驗(yàn)證中的validator與validate使用時(shí)的問(wèn)題

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

el-form表單驗(yàn)證中的validator與validate使用問(wèn)題

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

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

記Validator.validate造成的重大問(wèn)題

問(wèn)題場(chǎng)景 

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

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

代碼如下

//實(shí)體類
@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;
}
//設(shè)置值
public .... pottBean(){
? ? ?A a=new A();
? ? ?a.setName("小明");
? ? check(a);
}
//校驗(yàn)方法
public .....check(Object obj){
? ? Validator validator = ?Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(obj);
? //這個(gè)地方校驗(yàn)出來(lái)的,就是不符合規(guī)則的參數(shù)名,發(fā)現(xiàn)name也在其中,我也設(shè)置了值 ,百思不解
}

后來(lái)查找多方資料得知,Validator的驗(yàn)證組概念。

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

對(duì)于一個(gè)給定的 Object Graph 結(jié)構(gòu),有了組的概念,則無(wú)需對(duì)該 ObjectGraph 中所有的約束進(jìn)行驗(yàn)證,只需要對(duì)該組定義的一個(gè)子集進(jìn)行驗(yàn)證即可。

完成組別驗(yàn)證需要在約束聲明時(shí)進(jìn)行組別的聲明,否則使用默認(rèn)的組 Default.class。組也有繼承的屬性。

對(duì)某一組別進(jìn)行約束驗(yàn)證的時(shí)候,也會(huì)對(duì)其所繼承的基類進(jìn)行驗(yàn)證。所以當(dāng)我校驗(yàn)A參數(shù)時(shí)候,會(huì)對(duì)基類B進(jìn)行校驗(yàn)

苦逼的我又一次栽在這個(gè)地方了,當(dāng)需要校驗(yàn)實(shí)體類中的包含的對(duì)象時(shí)候,需要在該對(duì)象上添加@Valid注解 , 長(zhǎng)點(diǎn)心吧~

總結(jié)

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

相關(guān)文章

  • 解決vue單頁(yè)面應(yīng)用中動(dòng)態(tài)修改title問(wèn)題

    解決vue單頁(yè)面應(yīng)用中動(dòng)態(tài)修改title問(wèn)題

    這篇文章主要介紹了解決vue單頁(yè)面應(yīng)用中動(dòng)態(tài)修改title問(wèn)題,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Vue.js項(xiàng)目前端多語(yǔ)言方案的思路與實(shí)踐

    Vue.js項(xiàng)目前端多語(yǔ)言方案的思路與實(shí)踐

    前端的國(guó)際化是一個(gè)比較常見的需求,但網(wǎng)上關(guān)于這一方面的直接可用的方案卻不多,這篇文章主要給大家介紹了關(guān)于Vue.js項(xiàng)目前端多語(yǔ)言方案的思路與實(shí)踐,需要的朋友可以參考下
    2021-07-07
  • 一文詳解Vue選項(xiàng)式?API?的生命周期選項(xiàng)和組合式API

    一文詳解Vue選項(xiàng)式?API?的生命周期選項(xiàng)和組合式API

    這篇文章主要為大家介紹了Vue選項(xiàng)式?API?的生命周期選項(xiàng)和組合式API變化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • vue3之聲明式和編程式導(dǎo)航詳解

    vue3之聲明式和編程式導(dǎo)航詳解

    這篇文章主要介紹了vue3之聲明式和編程式導(dǎo)航,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 詳解Vue中子組件修改父組件傳過(guò)來(lái)的值的三種方式

    詳解Vue中子組件修改父組件傳過(guò)來(lái)的值的三種方式

    這篇文章主要為大家詳細(xì)介紹了Vue中子組件修改父組件傳過(guò)來(lái)的值的三種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2024-12-12
  • vue移動(dòng)端使用canvas簽名的實(shí)現(xiàn)

    vue移動(dòng)端使用canvas簽名的實(shí)現(xiàn)

    這篇文章主要介紹了vue移動(dòng)端使用canvas簽名的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • vue如何實(shí)現(xiàn)垂直居中

    vue如何實(shí)現(xiàn)垂直居中

    這篇文章主要介紹了vue如何實(shí)現(xiàn)垂直居中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 詳解如何在Vue項(xiàng)目中實(shí)現(xiàn)累加動(dòng)畫

    詳解如何在Vue項(xiàng)目中實(shí)現(xiàn)累加動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了如何在你的Vue項(xiàng)目中實(shí)現(xiàn)累加動(dòng)畫,文中的示例代碼簡(jiǎn)潔易懂,具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • Vue動(dòng)態(tài)引用json數(shù)據(jù)的兩種方式

    Vue動(dòng)態(tài)引用json數(shù)據(jù)的兩種方式

    在 Vue 項(xiàng)目中引用 JSON 文件非常簡(jiǎn)單,尤其是當(dāng)文件內(nèi)容是一個(gè)數(shù)組時(shí),本文給大家介紹了Vue動(dòng)態(tài)引用json數(shù)據(jù)的兩種方式,并有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2025-04-04
  • Vue組件生命周期三個(gè)階段全面總結(jié)講解

    Vue組件生命周期三個(gè)階段全面總結(jié)講解

    Vue的生命周期就是vue實(shí)例從創(chuàng)建到銷毀的全過(guò)程,也就是new Vue() 開始就是vue生命周期的開始。Vue 實(shí)例有?個(gè)完整的?命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模版、掛載Dom -> 渲染、更新 -> 渲染、卸載 等?系列過(guò)程,稱這是Vue的?命周期
    2022-11-11

最新評(píng)論

田林县| 临清市| 乌拉特后旗| 陆河县| 东平县| 金坛市| 渝中区| 伊宁县| 孟津县| 钦州市| 博乐市| 渭源县| 望奎县| 余江县| 姜堰市| 大名县| 台北市| 共和县| 林西县| 萨迦县| 桂东县| 上犹县| 涪陵区| 龙口市| 烟台市| 梅河口市| 大安市| 双江| 图木舒克市| 榆中县| 原阳县| 喀喇沁旗| 朝阳县| 沙雅县| 正宁县| 资溪县| 阿拉善右旗| 竹北市| 监利县| 白沙| 柘荣县|