給WebWork2.2增加JavaScript客戶端校驗(一)

          在WebWork2.2中(beta-2) 我們發現它使用DWRValidator來做客戶端校驗,而我們熟悉的JavaScript客戶端校驗已經沒有了.

          DWRValidator的工作方式是利用input的onBlur事件來引發校驗動作,每次都連接到服務器端去進行一次校驗

          我認為DWRValidator主要存在如下幾個問題:

          • 性能問題,每個input的一次onblur都會引發一個校驗
          • 校驗是異步的
          • 如果用戶不填寫數據,直接點擊提交,目前是不會引發校驗的(以后可能會修正,不過因為異步機制,不是很好處理)

          當然DWRValidator也有很多好處

          • 用戶無需關心客戶端校驗的處理
          • 不用寫JavaScript了
          • 客戶端校驗和服務器端校驗保持一致

           

          無論如何,我們應該給用戶更多選擇,于是,我經過幾天的研究,給WebWork2.2加上了在2.1.6版本中存在的JavaScript客戶端校驗.

          具體步驟如下:

          • 在webwork.properties里面增加一個配置,來配置校驗
          • 從WebWork2.1.6中復制 ScriptValidationAware, JavaScriptVisitorFieldValidator,JavaScriptRequiredFieldValidator
          • 從WebWork2.2中復制Form.java, UIBean.java,進行相應修改
          • 創建一個新的模板template,例如叫jsxhtml,從xhtml模板目錄復制 form.ftl,form_close.ftl,theme.proerties 等并進行修改
          • 從webwork-2.2-beta-2.jar 以及 src.jar里面刪除Form,UIBean2個類

          是的,你看到了一些bad smell,我們對webwork本身進行了修改,這是一種非常不好的辦法.

          不過目前為止我還沒有找到更簡單的辦法. (如果你有任何想法,可以告訴我 :) )  ,只好采取這種辦法.

          當然如果Webwork本身提供這種支持,那肯定就是更好地了. :)  如果你覺得這樣不錯,可以去WebWork的論壇發表你的意見,否則開發人員肯定是不會采取的.

           注意事項!!!

          webwork還在不斷的修改中,還沒有發布2.2的最后版本,所以下文提到的修改都是會隨時變化的,所以只有到了最后發布的時候,才能確定修改的內容,請不要盲目修改.

           

          修改配置文件,增加自定義設置

          在自己項目里的webwork.properties文件里面增加

          jsvalidator=true

          true表示使用JavaScript校驗,否則即使你使用了對應的模板也不會進行設置.

          為了使用對應的模板,你可以在tag中指定使用的theme,也可以在webwork.properties里面指定默認的theme:

          webwork.ui.theme=jsxhtml

          當然如果你不需要使用javaScript校驗,請保持原來的設置

           


           


           
          創造共用協議:署名,非商業,保持一致   除經特別注明外,本文章版權歸JScud Develop團隊或其作者所有.
          署名,非商業用途,保持一致.   scud(飛云小俠)   JScud Develop

          posted on 2005-10-03 14:32 Scud(飛云小俠) 閱讀(1243) 評論(1)  編輯  收藏 所屬分類: WEB

          評論

          # re: 給WebWork2.2增加JavaScript客戶端校驗(一) 2006-04-03 14:57 憲哥

          hack jar還蠻郁悶的。不過還是謝謝scud做出的貢獻!  回復  更多評論   

          <2005年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          公告

          文章發布許可
          創造共用協議:署名,非商業,保持一致

          我的郵件
          cnscud # gmail


          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊

          友情鏈接

          技術網站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 华宁县| 绍兴县| 平泉县| 彰化市| 潮安县| 抚顺县| 崇明县| 怀安县| 莲花县| 天长市| 新巴尔虎左旗| 郓城县| 泗水县| 榆树市| 普兰县| 南宁市| 五大连池市| 肥西县| 兴海县| 海伦市| 韩城市| 孙吴县| 鄯善县| 晋江市| 高要市| 武山县| 张家川| 新巴尔虎右旗| 富宁县| 马公市| 绿春县| 玉屏| 南皮县| 遵化市| 体育| 墨玉县| 大邑县| 大冶市| 旌德县| 永吉县| 普格县|