<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 70,comments - 408,trackbacks - 0
     Validator框架如今成為Jakarta的公共項目的一部分,Struts攜帶了Validator框架,主要是兩個jar文件,jakarta-oto.jar和commons-validator.jar文件.前者提供了一組處理文本的類,具有文本替換過濾和分割等功能,后者提供了一個簡單的,可擴展的驗證框架,包含了通用的驗證方法和驗證規則.如果Struts使用Validator需要添加那兩個jar文件到lib目錄.Validator框架采用了兩個基于XML的配置文件來配置驗證規則,這兩個文件是validator-rules.xml和validation.在Struts應用中,它們放在WEB-INF目錄.
     Validator-rules.xml文件包含了一組通用的驗證規則,對所有的String都適用.一般的情況下沒必要修改,除非需要修改或者擴展默認的規則.建議如果想擴展默認的驗證規則,最好把自定義的客戶化規則放在另一個XML文件中,這樣當升級Validator框架版本的時候,也無需修改validator-rules.xml文件.因為這個XML是不推薦修改的,所以我只是簡單的介紹一下具體的<validator>元素的幾個屬性,至于具體需要開發人員來開發的是validation的XML文件.<validator>元素的name屬性指定驗證規則的邏輯名,這個名字必須唯一.還有classname和method屬性分別指實現驗證規則邏輯的類和方法.msg屬性指定來自Resource中的消息key,驗證失敗,根據這個消息Key去找匹配的消息文本.depends屬性指定在調用當前驗證規則之前必須調用其他驗證規則.
     Validation.xml文件是針對某個具體的Struts應用,需要開發人員來創建的,它可以為應用中的ActionForm配置所需要的驗證規則,取代ActionForm類中編程的方式來實現驗證.<form-validation>元素是validatin.xml文件的根元素,它包含兩個子元素<global>和<formset>,<global>可以出現零次或者多次,而<formset>元素可以出現一次或者多次他們的DTD定義是:<!element form-validation(global*,formset+)>.<global>元素可以定義<constant>子元素,它用來定義常量表達式,在文件中其余地方可以應用這些常量表達式.<formset>元素包含兩個子元素<constant>和<form>,<form>元素用于為表單配置驗證規則,它的name屬性指定了表單的名字.<form>包含一個或者多<field>子元素,用于配置表單中字段的驗證規則.<field>的<msg>子元素指定驗證規則對應的消息文本,該消息文本替代validator-rules.xml文件中為驗證規則配置的默認的消息文本.<msg>元素的主要屬性是:name指定驗證規則的名字,key當resource屬性為true的時候,key屬性指定的消息key該消息key應該在Resource Bundle中存在.key屬性直接指定消息文本.resource當此項為true的時候,表示使用來自ResourceBundle的消息.<field>元素還可以包括附加的子元素<arg0><arg1><arg2>用于替換符合消息中的參數.<field>元素元素還可以包含零個或者多個<var>元素,用來向驗證規則傳遞參數.
     Validator插件需要在Struts配置文件中配置ValidatorPlugIn插件如下:
     <plug-in className=”org.apache.struts.validator.ValidatorPlugIn”>
      <set-property
           property=”pathnames”
           value=”/WEB-INF/validator-rules.xml/WEB-INF/validation.xml”/>
     </plug-in>
    當應用啟動時,Struts框架會加載ValidatorPlugIn插件,并調用它的init()方法,根據pathnames屬性,加載相應的validator-rules.xml和validation.xml文件,把驗證信息讀入到內存中.
     Validator框架不能用于驗證標準的org.apache.struts.atcion.ActionForm類,如果要使用Validator框架,應該采用ActionForm的兩個子類,validator包DynaValidatorForm和ValidatorForm類.DynaValidatorForm支持動態的ActionForm中使用Validator框架,ValidatorForm支持在標準的ActionForm中使用validator框架.無論是動態的還是標準的,它們的配置方法都一樣.而且Struts的一些標簽也可以和Validator框架協同工作,例如<html:errors>和<html:messages>Validator框架提供了對I18N的支持,無論是客戶端驗證,還是服務器驗證.Validator框架都從應用ResourceBundle中獲取錯誤信息.所以說它很好的支持的國際化.總結一下Struts應用中使用validator框架的步驟:
    創建擴展ValidatorForm或者ValidatorActionForm類的ActionForm類,如果使用動態的ActionForm,則無需創建擴展DynaValidatorForm或者DynaBalidatorActionForm類的子類,可以直接進行.
    在Struts配置文件中配置<form>和<action>元素.
    把Validator框架使用的消息文本添加到應用的ResourceBundle中.
    在Validation.xml文件中為表單配置驗證規則.
    在Struts配置文件中配置ValidatorPlugIn插件.
    如果更深入的學習Validator驗證框架,建議閱讀孫衛琴的<<精通Struts>>一書,本人
    曾經從中受益匪淺,寫文章的很多啟發也來自該書.
    posted on 2005-11-08 21:02 我心依舊 閱讀(1303) 評論(1)  編輯  收藏

    FeedBack:
    # re: Validator驗證框架[未登錄]
    2007-09-24 16:07 | 流水
    什么文章??
    沒有技術含量  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产高清在线免费| 免费无码看av的网站| 在线观看国产区亚洲一区成人 | 久久亚洲一区二区| 国产精品内射视频免费| 亚洲综合精品网站在线观看| 一区二区免费国产在线观看| 亚洲中文字幕视频国产| gogo免费在线观看| 人人狠狠综合久久亚洲婷婷| 日韩免费高清播放器| 亚洲图片一区二区| 182tv免费视视频线路一二三 | 国产精品免费看久久久无码| 男男黄GAY片免费网站WWW| 亚洲AV无码乱码在线观看| 九九免费久久这里有精品23| 亚洲精品无码午夜福利中文字幕 | 皇色在线免费视频| 亚洲AV无码一区二区二三区入口| 久久国产免费一区| 亚洲a∨无码男人的天堂| 免费观看理论片毛片| 亚美影视免费在线观看| 亚洲AV日韩AV永久无码下载| 波多野结衣在线免费观看| 亚洲日本一线产区和二线产区对比| 免费精品国产自产拍观看| av永久免费网站在线观看| 亚洲国产av一区二区三区丶| 日本不卡高清中文字幕免费| 久久最新免费视频| 亚洲午夜国产精品| 免费a在线观看播放| 免费h视频在线观看| 狠狠色伊人亚洲综合网站色| 亚洲国产香蕉人人爽成AV片久久 | 亚洲成年人啊啊aa在线观看| 精品免费视在线观看| 久久精品国产亚洲av麻豆图片 | 67194国产精品免费观看|