隨筆 - 4  文章 - 10  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           1.Validator框架以聲明的方式為應用程序配置已存在的檢驗規則,并允許程序員添加更多的檢驗規則.Validator框架能夠被Struts框架很好地支持.也可以被獨立出來使用.因此Validator框架和Struts框架是松散偶合.
           
          2.Validator框架由Validator檢驗類,Validator配置文件,資源配置文件和JSP標簽庫組成..
           (1).Validator檢驗類
               該類是在進行檢驗類時所需要的一個java類.每一次檢驗的發生都會調用該檢驗類中的方法,該檢驗類的方法只針對一種檢驗規則,但是通過配置文件的聲明,可以使檢驗類規則產生合作.組合成更復雜的檢驗規則.

           (2).Validator配置文件
              Validator-rule.xml是檢驗規則配置文件,定義了應用程序中可以使用Validators檢驗規則.換句話就是將所有可用的檢驗規則聲明在Validator-rule.xml中等待被調用.
             Validator.xml是具體檢驗配置文件,將Validator-rules,xml中的檢驗和應用結合起來的配置文件.他的名稱并不一定是"validator.xml";可以自定義.甚至可以不用該文件而直接在Validator-rules.xml中指定具體檢驗.但為了降低偶合,還是應該分出該配置文件.
           (3).資源配置文件
             該文件就是報錯信息文件,是為了將檢驗的出錯信息顯示給客戶端而使用的.就Struts框架和Validator框架協同工作來看,可以認為它就是Struts的resource 綁定所指定的資源配置文件.
          (4).JSP標簽
            JSP用于讀取資源配置文件中的報錯信息顯示出來.Strts框架中許多與資源配置文件相關的標簽都實現了這種工能,另外,<html:javascropt>標簽可以直接從validator框架中的validaotr-rulse.xml中得到javascrupt的檢驗結果.

          (2)Validator-rule.xml文件
             Validator框架是通過聲明的方式,而不是編程的方式來調用檢驗規則,因此配置文件Validator-rules.xml十分重要,在Validator-rules.xml中講檢驗類所實現的檢驗規則和聲明表示銜接起來,提供聲明實現
             Validator-rules.xml文件
            Validator框架是通過聲明的方式,而不是編程的方式來調用檢驗規則.因此配置文件Validator-rules.xml十分重要,在Validator-rules.xml中將檢驗類所實現的檢驗規則和聲明標識銜接起來,提供聲明的實現.
             簡單的Validator-rules.xml

          <!DOCTYPE form-validation PUBLIC
                    "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
                    "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
          <!--
          -->

          <form-validation>

             <global>  //所有檢驗規則的聲明都被定義<global>元素下作為其子元素  
              <validator name="required"//每個validator都代表一個檢驗規則,name屬性是該檢驗規則的聲明標識
                      classname="org.apache.struts.validator.FieldChecks"//檢驗規則的實體類
                         method="validateRequired"http://檢驗類中的方法名,指定聲明標識將調用該方法來進行檢驗
                   methodParams="java.lang.Object,//檢驗類所需要的傳入參數
                                 org.apache.commons.validator.ValidatorAction,
                                 org.apache.commons.validator.Field,
                                 org.apache.struts.action.ActionErrors,
                                 javax.servlet.http.HttpServletRequest"
                            msg="errors.required">//msg屬性指定了報錯信息在資源配置文件中的"鍵值",通過該"鍵值"從資源配置文件中找到該條報錯信息,并顯示出來.
                </validator>
                <validator name="integer"
                      classname="org.apache.struts.validator.FieldChecks"
                         method="validateInteger"
                   methodParams="java.lang.Object,
                                 org.apache.commons.validator.ValidatorAction,
                                 org.apache.commons.validator.Field,
                                 org.apache.struts.action.ActionErrors,
                                 javax.servlet.http.HttpServletRequest"
                        depends=""
                            msg="errors.integer"
                   </validator>
                <validator name="range"
                      classname="org.apache.struts.validator.FieldChecks"
                         method="validateIntRange"
                   methodParams="java.lang.Object,
                                 org.apache.commons.validator.ValidatorAction,
                                 org.apache.commons.validator.Field,
                                 org.apache.struts.action.ActionErrors,
                                 javax.servlet.http.HttpServletRequest"
                        depends="integer"
                            msg="errors.range">
                </validator>
             </global>
          </form-validation>
          3個<validator>元素的校驗規則
          *校驗值是否不為空或不為null
          *校驗值是否可以安全轉換為integer型
          *校驗該校驗值的范圍是否在最大和最小值之間

          <validator>元素還有其他屬性來幫助實現其他功能
          name屬性為range的<validator>元素擁有depends屬性,并指定屬性的內容為"integer"
          depends屬性的含義是:本<validator>校驗規則必須依賴另一個檢驗規則而實現.換句話說,就是必須先校驗depends屬性所指定的<validator>檢驗規則,通過后才會校驗自身規則.depends屬性的內容應該是另一組<validator>校驗規則的聲明.
           
          (2)2
          validator.xml文件
            該文件是將validator-rules.xml中的校驗和應用程序結合起來的配置文件,有了validator-rule.xml后,只要通過validator,.xml將它與具體校驗邏輯結合,就能完成真正的具體校驗
            結合validator.xml的ActionForm
          validator框架的ActionForm
          package struts.sample.cap5.sample.form;
          import org.apache.struts.validator.ValidatorForm;
          public class CheckForm extends ValidatorForm{//不能繼承普通的ActionForm,必須繼承自ValidatorForm或ValidatorActionForm.若是動態ActionForm,則需要繼續于DynaValidatorFor或DynaValidatorActionForm
          private sring userName;
          private int age;
          private string email;
          private string password;
          public String getUserName(){
          return userName;
          }
          public String getUserName(){
          return userName;
          }
          public void setUserName(String userName){
          this.userName=userName;
          }
          public int getAge(){
          return age;
          }
          public void setAge(int age){
          this.age=age;
          }
          public String getEmail(){
          return email;
          }
          public void setEmail(string email){
          this.email=email;
          }
          public String getPassWord(){
          return password;
          }
          public void setPassword(String password){
          this.password=password;
          }
          }
          *ValidatorForm(或DynaValidatorFor)將根據surut-config.xml文件中<action>的name屬性,為當前ActionForm調用相應的校驗規則,這在validator.xml中可以看到
          *ValidatorActionForm(或DynaValidatorActionForm)使用struts-config.xml中<action>的path屬性,為當前ActionForm調用相應的檢驗規則.

          posted on 2007-09-28 21:13 冬天出走的豬 閱讀(326) 評論(0)  編輯  收藏 所屬分類: struts
          主站蜘蛛池模板: 兴海县| 沧源| 瑞金市| 苍溪县| 斗六市| 冷水江市| 西平县| 陇西县| 辉南县| 沛县| 马龙县| 晴隆县| 区。| 乳源| 青岛市| 星子县| 澎湖县| 永登县| 天水市| 丹凤县| 洞口县| 宜阳县| 包头市| 昆明市| 清流县| 明星| 鹤峰县| 新竹市| 芦山县| 开原市| 巴南区| 和顺县| 镇雄县| 耿马| 通州市| 仙游县| 莱阳市| 武汉市| 安化县| 华容县| 来凤县|