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

springmvc的validator數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)示例代碼

 更新時(shí)間:2017年07月17日 10:26:51   作者:一杯涼茶  
這篇文章主要介紹了springmvc的數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)示例代碼, 具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、什么是數(shù)據(jù)校驗(yàn)?

這個(gè)比較好理解,就是用來(lái)驗(yàn)證客戶輸入的數(shù)據(jù)是否合法,比如客戶登錄時(shí),用戶名不能為空,或者不能超出指定長(zhǎng)度等要求,這就叫做數(shù)據(jù)校驗(yàn)。

數(shù)據(jù)校驗(yàn)分為客戶端校驗(yàn)和服務(wù)端校驗(yàn)

客戶端校驗(yàn):js校驗(yàn)

服務(wù)端校驗(yàn):springmvc使用validation校驗(yàn),struts2使用validation校驗(yàn)。都有自己的一套校驗(yàn)規(guī)則。

二、springmvc的validation校驗(yàn)

Springmvc本身沒(méi)有校驗(yàn)功能,它使用hibernate的校驗(yàn)框架,hibernate的校驗(yàn)框架和orm沒(méi)有關(guān)系

2.1、添加jar包

          

2.2、在springmvc.xml中配置validator校驗(yàn)器,基本上直接復(fù)制拿過(guò)去用即可。

配置以下這些,相當(dāng)于有人幫我們寫好了校驗(yàn)代碼,我們拿過(guò)來(lái)直接用就行了,所以需要進(jìn)行配置。

          

將validator注冊(cè)到適配器中

方式一(推薦)

            

方式二:如果配置文件中使用的是非注解方式編寫的適配器,則這樣配置

          

 <!-- 校驗(yàn)器,配置validator -->
  <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
    <property name="validationMessageSource" ref="validationMessageSource"></property>
  </bean>
  
  <!-- 配置validationMessageSource -->
  <bean id="validationMessageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <!-- 指定校驗(yàn)信息的資源文件的基本文件名稱,不包括后綴,后綴默認(rèn)是properties -->
    <property name="basenames">
      <list>
        <value>classpath:validationMessageSource</value>
      </list>
    </property>
    <!-- 指定文件的編碼 -->
    <property name="fileEncodings" value="utf8"></property>
    <!-- 對(duì)資源文件內(nèi)容緩存的時(shí)間,單位秒 -->
    <property name="cacheSeconds" value="120"></property>
  </bean>

2.3、validationMessageSource.properties

該配置文件的作用就是存儲(chǔ)校驗(yàn)失敗時(shí)的提示文字信息的,也就是相當(dāng)于將其提取出來(lái)放到配置文件中,

          

2.4、在pojo中指定校驗(yàn)規(guī)則

列舉兩個(gè)校驗(yàn)規(guī)則(使用的是注解校驗(yàn)),notnull和size

          

1、items.name.size和items.createtime.notnull:就是讀取validationMessageSource.properties中的配置信息。從這里就可以理解該配置文件的意義,防止硬編碼。

2、使用注解對(duì)需要進(jìn)行校驗(yàn)的屬性進(jìn)行綁定,而能夠使這些注解生效的前提就是配置此前的幾個(gè)步驟,2.1、2.2、2.3都必不可少

其他校驗(yàn)規(guī)則摘抄自網(wǎng)上

          

2.5、controller中對(duì)其校驗(yàn)綁定進(jìn)行使用

          

1、@Validated作用就是將pojo內(nèi)的注解數(shù)據(jù)校驗(yàn)規(guī)則(@NotNull等)生效,如果沒(méi)有該注解的聲明,pojo內(nèi)有注解數(shù)據(jù)校驗(yàn)規(guī)則也不會(huì)生效

2、BindingResult對(duì)象用來(lái)獲取校驗(yàn)失敗的信息(@NotNull中的message),與@Validated注解必須配對(duì)使用,一前一后

3、代碼中的邏輯應(yīng)該很容易看懂,就是將result中所有的錯(cuò)誤信息取出來(lái),然后到原先的頁(yè)面將錯(cuò)誤信息進(jìn)行顯示,注意,要使用model對(duì)象,則需要在形參中聲明Model model,然后菜能使用

2.6、jsp頁(yè)面

          

2.7、總結(jié)

其實(shí)非常簡(jiǎn)單,直接使用注解對(duì)其進(jìn)行校驗(yàn)就完事了,校驗(yàn)代碼都替我們寫好了,只需要配置一下即可。傻瓜式操作。不會(huì)的看上面步驟,一步步來(lái)。

三、分組校驗(yàn)

3.1、什么是分組校驗(yàn)?

校驗(yàn)規(guī)則是在pojo 制定的,而同一個(gè)pojo可以被多個(gè)Controller使用,此時(shí)會(huì)有問(wèn)題,即:不同的Controller方法對(duì)同一個(gè)pojo進(jìn)行校驗(yàn),此時(shí)這些校驗(yàn)信息是共享在這不同的Controller方法中,但是實(shí)際上每個(gè)Controller方法可能需要不同的校驗(yàn),在這種情況下,就需要使用分組校驗(yàn)來(lái)解決這種問(wèn)題,

通俗的講,一個(gè)pojo中有很多屬性,controller中的方法1可能只需要校驗(yàn)pojo中的屬性1,controller中的方法2只需要校驗(yàn)pojo中的屬性2,但是pojo中的校驗(yàn)注解有很多,怎樣才能使方法1只校驗(yàn)屬性1,方法二只校驗(yàn)屬性2呢?就需要用分組校驗(yàn)來(lái)解決了。

3.2、定義分組

          

就是定義空的接口,接口類只作為這個(gè)分組標(biāo)識(shí)來(lái)使用,看下面的用法,就知道其意義何在了

3.3、使用分組

        

3.4、controller方法

在這個(gè)方法中,那么就只會(huì)校驗(yàn)items這個(gè)pojo中有ValidationGroup1這個(gè)分組的校驗(yàn)注解,而不會(huì)在校驗(yàn)其他的

        

四、總結(jié)

數(shù)據(jù)校驗(yàn)就這樣講完了,非常簡(jiǎn)單吧,拿過(guò)來(lái)就是一頓用即可。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot+Mybatis分頁(yè)插件PageHelper實(shí)現(xiàn)分頁(yè)效果

    SpringBoot+Mybatis分頁(yè)插件PageHelper實(shí)現(xiàn)分頁(yè)效果

    這篇文章主要介紹了SpringBoot+Mybatis實(shí)現(xiàn)分頁(yè)效果,本案例是采用Mybatis分頁(yè)插件PageHelper實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • java 用itext設(shè)置pdf紙張大小操作

    java 用itext設(shè)置pdf紙張大小操作

    這篇文章主要介紹了java 用itext設(shè)置pdf紙張大小操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配

    SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配

    本文主要介紹了SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Java對(duì)數(shù)器的使用講解

    Java對(duì)數(shù)器的使用講解

    今天小編就為大家分享一篇關(guān)于Java對(duì)數(shù)器的使用講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • java 獲取HttpRequest Header的幾種方法(必看篇)

    java 獲取HttpRequest Header的幾種方法(必看篇)

    下面小編就為大家?guī)?lái)一篇java 獲取HttpRequest Header的幾種方法(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • Java9的一些新特性介紹

    Java9的一些新特性介紹

    這篇文章主要介紹了Java9的一些新特性介紹,Java隨著其開(kāi)源的特點(diǎn)和甲骨文的推動(dòng)正在不斷改進(jìn)中,需要的朋友可以參考下
    2015-07-07
  • 基于Integer值判斷是否相等的問(wèn)題

    基于Integer值判斷是否相等的問(wèn)題

    這篇文章主要介紹了基于Integer值判斷是否相等的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • 詳解5種Java中常見(jiàn)限流算法

    詳解5種Java中常見(jiàn)限流算法

    在高并發(fā)系統(tǒng)中,出于系統(tǒng)保護(hù)角度考慮,通常會(huì)對(duì)流量進(jìn)行限流;不但在工作中要頻繁使用,而且也是面試中的高頻考點(diǎn)。本文就為大家整理了5種Java中常見(jiàn)限流算法,需要的可以參考一下
    2023-04-04
  • 在idea中添加JDK的簡(jiǎn)單圖文教程

    在idea中添加JDK的簡(jiǎn)單圖文教程

    這篇文章主要介紹了如何在IntelliJ IDEA中配置JDK,講解了打開(kāi)軟件、進(jìn)入Project Structure、選擇SDKs、添加或選擇JDK版本,最后確認(rèn)并重啟IDEA,需要的朋友可以參考下
    2024-12-12
  • JavaWeb?Hibernate使用全面介紹

    JavaWeb?Hibernate使用全面介紹

    在正式進(jìn)入Hibernate的高級(jí)應(yīng)用之前,需要了解聲明是數(shù)據(jù)模型與領(lǐng)域模型,這兩個(gè)概念將會(huì)幫助我們更好的理解實(shí)體對(duì)象的關(guān)聯(lián)關(guān)系映射
    2022-10-10

最新評(píng)論

开封县| 无极县| 谷城县| 杭锦旗| 玉树县| 谢通门县| 禹城市| 綦江县| 金湖县| 西充县| 东乌珠穆沁旗| 济南市| 精河县| 蒙城县| 蓬安县| 阳山县| 阆中市| 九龙坡区| 叶城县| 谢通门县| 迭部县| 陵水| 汾西县| 河北区| 呈贡县| 上高县| 廊坊市| 乃东县| 罗江县| 鄂托克旗| 莎车县| 金乡县| 龙里县| 射阳县| 富顺县| 建昌县| 南宁市| 根河市| 安溪县| 昭通市| 铁岭县|