隨筆-67  評論-522  文章-0  trackbacks-0
              服務(wù)器端的數(shù)據(jù)驗證,對于一個WEB應(yīng)用來說是非常重要的,而Spring3.0開始支持JSR-303規(guī)范,它定義了一些標(biāo)準(zhǔn)的驗證約束,同時也提供了一個可擴展的自定義方式來滿足不同的開發(fā)需要,大象以SSM3為基礎(chǔ),結(jié)合實例來說明如何通過Spring MVC用自定義約束注解的方式來實現(xiàn)Validator驗證。
              在實現(xiàn)功能之前,我們需要在pom文件里添加一些必須的依賴:
              
              validation-apiJSR-303規(guī)范的標(biāo)準(zhǔn)接口,hibernate-validator則是這套接口的一個實現(xiàn),而hibernate-validator的實現(xiàn)里面又會用到slf4j,所以還需要加上這兩個jar包。有了這些,我們就可以在此基礎(chǔ)上實現(xiàn)自定義注解約束擴展了。
              本篇還是以SSM3為基礎(chǔ),以對角色名稱添加屏蔽詞為例來說明如何實現(xiàn)這些功能。
              首先需要定義這樣一個屏蔽詞注解:
              
              上面這個注解類,message(),groups()payload()這三個方法是注解驗證的標(biāo)準(zhǔn)格式,filed()表示驗證的字段名稱,{constraint.default.words.message}是從ValidationMessages.properties資源文件中獲取的,這個文件的位置就在resources目錄下面。
              現(xiàn)在定義了驗證接口,就需要有處理接口的實現(xiàn),WordsValidator.class就是用來處理這個的:
              
              這里大象為了說明實現(xiàn)的方法,簡化了處理,實際開發(fā)中,可以改進(jìn)一下,通過使用屏蔽詞庫對value值進(jìn)行過濾。下面是一個測試類,對此注解進(jìn)行一個簡單的測試。
              
              現(xiàn)在定義好了注解,我們就可以使用它了。
              
              RoleControllersave方法需要加入驗證以及錯誤處理:
              
              頁面上想要顯示驗證的錯誤信息,最方便的就是直接使用spring-webmvc里的org.springframework.web.servlet.view.freemarkerspring.ftl文件,它里面定義了很多的宏命令,同時還可以添加自定義的宏命令:
              
              role_edit.html這個頁面的變動不大,主要就是四點,具體的可以查看源碼。
              1、引入并定義<#import "/common/spring.ftl" as spring/>
              2、在角色名input后面增加<label class="error" for="name" style="display:none;"></label>
              3、然后加入jquery.js,用來解析showErrors中的腳本
              4、使用<@spring.showErrors/>
              最后,要想讓這些功能都能正常的運行起來,需要改下servlet-context.xml文件
              
              源碼下載: ssm3_annotation   
              本文為菠蘿大象原創(chuàng),如要轉(zhuǎn)載請注明出處。http://www.aygfsteel.com/bolo
          posted on 2013-12-16 17:47 菠蘿大象 閱讀(17426) 評論(10)  編輯  收藏 所屬分類: Spring3

          評論:
          # re: 基于Spring MVC框架JSR-303的自定義注解validator驗證實現(xiàn) 2013-12-17 15:56 | china obd2
          很好很強大  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解validator驗證實現(xiàn) 2013-12-17 17:43 | CoderDream
          感謝分享!

          SQL腳本有問題,user表少了一個password字段!  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解validator驗證實現(xiàn) 2013-12-17 18:01 | 菠蘿大象
          @CoderDream
          多謝兄臺指正,這個字段是多余的,我也不知道為什么就在里面,已經(jīng)更新了下載包。  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解validator驗證實現(xiàn) 2013-12-18 11:35 | 鯉伴
          專家 人才  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現(xiàn) 2014-03-28 18:30 | 最代碼
          我根據(jù)你的博客整理了一份代碼,下載地址:http://www.zuidaima.com/share/1755786415246336.htm  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現(xiàn) 2014-03-29 12:32 | 菠蘿大象
          @最代碼
          謝謝分享  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現(xiàn) 2014-03-30 23:47 | 最代碼
          @菠蘿大象
          客氣  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現(xiàn) 2014-04-08 16:31 | 王凱文

          constraint.default.words.message={filed}\u6709\u5c4f\u853d\u8bcd
          請問這是一種什么格式編碼阿?  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現(xiàn) 2014-04-14 19:42 | 菠蘿大象
          @王凱文
          你需要裝個propedit插件  回復(fù)  更多評論
            
          # re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現(xiàn) 2015-11-03 11:57 | 認(rèn)真
          非常感謝,貢獻(xiàn)源碼非常有用, 再次感謝!  回復(fù)  更多評論
            
          主站蜘蛛池模板: 浦东新区| 深州市| 定兴县| 宜丰县| 阳谷县| 曲沃县| 凤庆县| 宝兴县| 康保县| 洪江市| 乐陵市| 泰宁县| 石泉县| 易门县| 靖远县| 班玛县| 嘉禾县| 江源县| 和田县| 连江县| 邯郸市| 德庆县| 昌黎县| 伊金霍洛旗| 锦州市| 高州市| 鄯善县| 长岭县| 巴林右旗| 彝良县| 仪陇县| 神木县| 北辰区| 固阳县| 神池县| 泰州市| 西乌珠穆沁旗| 利津县| 沅江市| 兴化市| 玛沁县|