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

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

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

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

          (2)Validator-rule.xml文件
             Validator框架是通過聲明的方式,而不是編程的方式來調(diào)用檢驗(yàn)規(guī)則,因此配置文件Validator-rules.xml十分重要,在Validator-rules.xml中講檢驗(yàn)類所實(shí)現(xiàn)的檢驗(yàn)規(guī)則和聲明表示銜接起來,提供聲明實(shí)現(xiàn)
             Validator-rules.xml文件
            Validator框架是通過聲明的方式,而不是編程的方式來調(diào)用檢驗(yàn)規(guī)則.因此配置文件Validator-rules.xml十分重要,在Validator-rules.xml中將檢驗(yàn)類所實(shí)現(xiàn)的檢驗(yàn)規(guī)則和聲明標(biāo)識銜接起來,提供聲明的實(shí)現(xiàn).
             簡單的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>  //所有檢驗(yàn)規(guī)則的聲明都被定義<global>元素下作為其子元素  
              <validator name="required"//每個(gè)validator都代表一個(gè)檢驗(yàn)規(guī)則,name屬性是該檢驗(yàn)規(guī)則的聲明標(biāo)識
                      classname="org.apache.struts.validator.FieldChecks"//檢驗(yàn)規(guī)則的實(shí)體類
                         method="validateRequired"http://檢驗(yàn)類中的方法名,指定聲明標(biāo)識將調(diào)用該方法來進(jìn)行檢驗(yàn)
                   methodParams="java.lang.Object,//檢驗(yàn)類所需要的傳入?yún)?shù)
                                 org.apache.commons.validator.ValidatorAction,
                                 org.apache.commons.validator.Field,
                                 org.apache.struts.action.ActionErrors,
                                 javax.servlet.http.HttpServletRequest"
                            msg="errors.required">//msg屬性指定了報(bào)錯(cuò)信息在資源配置文件中的"鍵值",通過該"鍵值"從資源配置文件中找到該條報(bào)錯(cuò)信息,并顯示出來.
                </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個(gè)<validator>元素的校驗(yàn)規(guī)則
          *校驗(yàn)值是否不為空或不為null
          *校驗(yàn)值是否可以安全轉(zhuǎn)換為integer型
          *校驗(yàn)該校驗(yàn)值的范圍是否在最大和最小值之間

          <validator>元素還有其他屬性來幫助實(shí)現(xiàn)其他功能
          name屬性為range的<validator>元素?fù)碛衐epends屬性,并指定屬性的內(nèi)容為"integer"
          depends屬性的含義是:本<validator>校驗(yàn)規(guī)則必須依賴另一個(gè)檢驗(yàn)規(guī)則而實(shí)現(xiàn).換句話說,就是必須先校驗(yàn)depends屬性所指定的<validator>檢驗(yàn)規(guī)則,通過后才會校驗(yàn)自身規(guī)則.depends屬性的內(nèi)容應(yīng)該是另一組<validator>校驗(yàn)規(guī)則的聲明.
           
          (2)2
          validator.xml文件
            該文件是將validator-rules.xml中的校驗(yàn)和應(yīng)用程序結(jié)合起來的配置文件,有了validator-rule.xml后,只要通過validator,.xml將它與具體校驗(yàn)邏輯結(jié)合,就能完成真正的具體校驗(yàn)
            結(jié)合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.若是動態(tài)ActionForm,則需要繼續(xù)于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)將根據(jù)surut-config.xml文件中<action>的name屬性,為當(dāng)前ActionForm調(diào)用相應(yīng)的校驗(yàn)規(guī)則,這在validator.xml中可以看到
          *ValidatorActionForm(或DynaValidatorActionForm)使用struts-config.xml中<action>的path屬性,為當(dāng)前ActionForm調(diào)用相應(yīng)的檢驗(yàn)規(guī)則.

          posted on 2007-09-28 21:13 冬天出走的豬 閱讀(326) 評論(0)  編輯  收藏 所屬分類: struts
          主站蜘蛛池模板: 九龙县| 金秀| 文登市| 舞钢市| 滁州市| 黔东| 福清市| 桑日县| 龙海市| 武平县| 潍坊市| 青田县| 永安市| 香格里拉县| 馆陶县| 清远市| 潍坊市| 准格尔旗| 马公市| 砚山县| 上林县| 临江市| 镇远县| 阳春市| 依兰县| 通江县| 仙居县| 海口市| 太谷县| 京山县| 浦城县| 尼玛县| 曲沃县| 天柱县| 沁水县| 灯塔市| 长葛市| 平阴县| 泗水县| 衡山县| 越西县|