朱雀的IT世界

          每天進(jìn)步一點(diǎn)點(diǎn),努力做好自己

           

          總結(jié)一下Spring MVC 中Validator 的使用

          今天使用到Spring 驗(yàn)證的模塊(Validator),稍微研究了一下,覺得不僅僅是書上講的那么簡(jiǎn)單,在此總結(jié)下

          介紹下Spring Validator 接口必須實(shí)現(xiàn)的方法
          1、public boolean support(Class clazz);這個(gè)方法是要驗(yàn)證提交表單時(shí)對(duì)應(yīng)的那個(gè)緩存數(shù)據(jù)的類(通常由Hibernate生成),這通常由代碼編寫者設(shè)定,一般不會(huì)有錯(cuò)
          2、public void validate(Object target, Errors errors);注意,這里返回的反而不是boolean,這是因?yàn)镾pring 在處理無法提交的表單使用的機(jī)制是例外機(jī)制,他會(huì)送出一個(gè)Errors,包裝了對(duì)應(yīng)的信息。通常使用的方法是由類ValidationUtils 提供的,該類提供了驗(yàn)證的幾個(gè)方法,并包裝了錯(cuò)誤。這里包裝后的錯(cuò)誤會(huì)出現(xiàn)在Controller 中的BindException 中,可以用getMessage() 方法來得到信息,不過這個(gè)信息很原始,可以利用適當(dāng)?shù)淖址幚頇C(jī)制處理一下。

          其實(shí)這里有一個(gè)更好的方法,就是混合使用<spring:bind>標(biāo)簽,這個(gè)標(biāo)簽可以把對(duì)應(yīng)提交的form 對(duì)象和表單中相關(guān)名稱的字段綁定,而且可以通過它的子屬性打印出錯(cuò)誤信息例如你可以嵌入<c:out value="status.errorMessage" />這樣就會(huì)把該字段驗(yàn)證時(shí)失敗的信息顯示出來,非常容易和好用,建議大家可以使用  

          當(dāng)Validator 接口實(shí)現(xiàn)完畢后,要在配置servlet 的xml 文件中將對(duì)應(yīng)的Controller 的validator 屬性設(shè)置為你的Validator 接口實(shí)現(xiàn)類,這樣,系統(tǒng)就會(huì)自動(dòng)對(duì)你需要驗(yàn)證的模塊進(jìn)行驗(yàn)證了。

          如果你還想錦上添花的話,不但可以使用Spring MVC 的驗(yàn)證機(jī)制,還可以用JavaScript 寫一段富客戶端的驗(yàn)證機(jī)制

          嗯,差不多了,就總結(jié)到此吧

          posted on 2007-08-30 20:47 朱雀 閱讀(5537) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 洪江市| 喀什市| 西昌市| 仁怀市| 邢台市| 墨玉县| 乐亭县| 日土县| 普兰县| 噶尔县| 巨野县| 正蓝旗| 宕昌县| 龙口市| 临海市| 司法| 新兴县| 乐清市| 皮山县| 夏邑县| 区。| 东阳市| 赫章县| 于田县| 龙胜| 灵璧县| 文成县| 永泰县| 武宁县| 龙泉市| 崇明县| 抚远县| 烟台市| 潍坊市| 舟山市| 顺平县| 瓮安县| 双流县| 万安县| 山丹县| 盈江县|