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

    FeedBack:
    # re: Validator驗(yàn)證框架[未登錄]
    2007-09-24 16:07 | 流水
    什么文章??
    沒有技術(shù)含量  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 男女午夜24式免费视频| CAOPORN国产精品免费视频| 久久免费动漫品精老司机| 区久久AAA片69亚洲| 99久久成人国产精品免费| 亚洲综合伊人久久大杳蕉| CAOPORN国产精品免费视频| 亚洲va久久久噜噜噜久久男同| a级黄色毛片免费播放视频| 久久久久亚洲精品无码系列| 99re6在线视频精品免费下载 | 久久免费观看国产99精品| 亚洲精品成人av在线| 在线看片v免费观看视频777| 亚洲一级毛片中文字幕| 午夜私人影院免费体验区| 麻豆安全免费网址入口| 亚洲日本一区二区三区在线| 香蕉免费一区二区三区| 亚洲毛片免费观看| 成人免费视频小说| 十八禁的黄污污免费网站| 亚洲色欲色欲www在线丝| 99re在线视频免费观看| 亚洲精品无码日韩国产不卡av| 国产jizzjizz视频免费看| 国产一级a毛一级a看免费人娇| 亚洲成人在线网站| 免费a级毛片无码a∨蜜芽试看| 欧美色欧美亚洲另类二区| 亚洲国产另类久久久精品 | 中国videos性高清免费| 亚洲精品中文字幕乱码| 免费欧洲美女牲交视频| 男女午夜24式免费视频| 亚洲AV永久无码精品网站在线观看 | 亚洲成?Ⅴ人在线观看无码| 四虎国产精品永久免费网址| 亚洲女子高潮不断爆白浆| 亚洲精品无码成人片久久| 蜜桃精品免费久久久久影院|