91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springmvc的validator數據校驗的實現示例代碼

發布時間:2020-10-19 20:45:07 來源:腳本之家 閱讀:133 作者:一杯涼茶 欄目:編程語言

一、什么是數據校驗?

這個比較好理解,就是用來驗證客戶輸入的數據是否合法,比如客戶登錄時,用戶名不能為空,或者不能超出指定長度等要求,這就叫做數據校驗。

數據校驗分為客戶端校驗和服務端校驗

客戶端校驗:js校驗

服務端校驗:springmvc使用validation校驗,struts2使用validation校驗。都有自己的一套校驗規則。

二、springmvc的validation校驗

Springmvc本身沒有校驗功能,它使用hibernate的校驗框架,hibernate的校驗框架和orm沒有關系

2.1、添加jar包

          springmvc的validator數據校驗的實現示例代碼

2.2、在springmvc.xml中配置validator校驗器,基本上直接復制拿過去用即可。

配置以下這些,相當于有人幫我們寫好了校驗代碼,我們拿過來直接用就行了,所以需要進行配置。

          springmvc的validator數據校驗的實現示例代碼

將validator注冊到適配器中

方式一(推薦)

          springmvc的validator數據校驗的實現示例代碼  

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

          springmvc的validator數據校驗的實現示例代碼

 <!-- 校驗器,配置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">
    <!-- 指定校驗信息的資源文件的基本文件名稱,不包括后綴,后綴默認是properties -->
    <property name="basenames">
      <list>
        <value>classpath:validationMessageSource</value>
      </list>
    </property>
    <!-- 指定文件的編碼 -->
    <property name="fileEncodings" value="utf8"></property>
    <!-- 對資源文件內容緩存的時間,單位秒 -->
    <property name="cacheSeconds" value="120"></property>
  </bean>

2.3、validationMessageSource.properties

該配置文件的作用就是存儲校驗失敗時的提示文字信息的,也就是相當于將其提取出來放到配置文件中,

          springmvc的validator數據校驗的實現示例代碼

2.4、在pojo中指定校驗規則

列舉兩個校驗規則(使用的是注解校驗),notnull和size

          springmvc的validator數據校驗的實現示例代碼

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

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

其他校驗規則摘抄自網上

          springmvc的validator數據校驗的實現示例代碼

springmvc的validator數據校驗的實現示例代碼

2.5、controller中對其校驗綁定進行使用

          springmvc的validator數據校驗的實現示例代碼

1、@Validated作用就是將pojo內的注解數據校驗規則(@NotNull等)生效,如果沒有該注解的聲明,pojo內有注解數據校驗規則也不會生效

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

3、代碼中的邏輯應該很容易看懂,就是將result中所有的錯誤信息取出來,然后到原先的頁面將錯誤信息進行顯示,注意,要使用model對象,則需要在形參中聲明Model model,然后菜能使用

2.6、jsp頁面

          springmvc的validator數據校驗的實現示例代碼

2.7、總結

其實非常簡單,直接使用注解對其進行校驗就完事了,校驗代碼都替我們寫好了,只需要配置一下即可。傻瓜式操作。不會的看上面步驟,一步步來。

三、分組校驗

3.1、什么是分組校驗?

校驗規則是在pojo 制定的,而同一個pojo可以被多個Controller使用,此時會有問題,即:不同的Controller方法對同一個pojo進行校驗,此時這些校驗信息是共享在這不同的Controller方法中,但是實際上每個Controller方法可能需要不同的校驗,在這種情況下,就需要使用分組校驗來解決這種問題,

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

3.2、定義分組

          springmvc的validator數據校驗的實現示例代碼

springmvc的validator數據校驗的實現示例代碼

就是定義空的接口,接口類只作為這個分組標識來使用,看下面的用法,就知道其意義何在了

3.3、使用分組

        springmvc的validator數據校驗的實現示例代碼

3.4、controller方法

在這個方法中,那么就只會校驗items這個pojo中有ValidationGroup1這個分組的校驗注解,而不會在校驗其他的

        springmvc的validator數據校驗的實現示例代碼

四、總結

數據校驗就這樣講完了,非常簡單吧,拿過來就是一頓用即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峨县| 岳阳市| 罗江县| 迁安市| 溧水县| 南雄市| 顺平县| 福鼎市| 嘉峪关市| 彰化市| 乐安县| 浑源县| 蕲春县| 岱山县| 福安市| 寻甸| 咸阳市| 永仁县| 武夷山市| 板桥市| 黎川县| 潞西市| 墨江| 东方市| 通化市| 海南省| 裕民县| 广德县| 武宣县| 镇远县| 阿巴嘎旗| 信丰县| 丹江口市| 东兴市| 陕西省| 鹤庆县| 曲水县| 河源市| 竹溪县| 诸暨市| 寿宁县|