Terry原創,轉載請說明作者及出處。
使用平臺:Eclipse3.2+MyEclipse5.01GA 首先,Validator驗證框架最好要在Struts1.2下使用,當然在Struts1.1下也是可行的,只是在Struts1.2下能支持得更好。 在Struts-Config.xml配置文件里添加插件,或是把下面的文本內容復制到Struts-Config.xml中: <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in> 在MyEclipse下建立validation.xml的步驟如下: 在項目的根目錄處點擊鼠標右鍵,選擇新建“XML(Basic Templates)”,在彈出的窗口中選擇“Create XML file from a DTD file”下一步,將文件目錄設置到WEB-INF下,文件名取為“validation.xml”下一步;在這里點擊“Select XML Catalog entry”選項,并選擇KEY名為“-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN”的選項,下一步;此處已經不需要再設置什么,直接點擊“Finish”完成validation.xml的建立,通過這樣的建立文件,在編輯過程中輸入"<"符號后,編輯器就會自動查找與當前結構匹配的Validator標簽。 下面介紹一下validation.xml配置文件的標簽: <form-validation></form-validation>是總框架 <formset></formset>是對Form里的數據進行配置 <form name="ActionForm對應的名稱"></form>對一個ActionForm里的數據進行驗證配置 <field property="ActionForm里的屬性名" depends="驗證規則,可以是Validation-rules里定義好的也可以是自定義的驗證規則">這里配置一個屬性的驗證內容 <arg0 name="對應的驗證規則名稱" key="可以直接填入數值,也可填入變量表達式:${var:變量名}" resource="true/false"(代表是否從資源文件中讀取信息,否則Key的值以參數的形式返回)> <var></var>定義一個變量的標簽體,可以在里面具體設置變量的名稱以及數值 <var-name>對應Key里定義的變量名稱</var-name> <var-value>值</var-value> <msg name="對應的驗證規則名稱" key="資源文件中定義的變量名稱">這里定義了信息變量后,會默認定義的信息變量。 在驗證規則中大部分可以使用已經預定義好的規則,它們在validator-rules.xml里,當然我們自己也可以定義規則。 實例如下: <form-validation> <formset> <form name="employeeActionForm"> <field property="vname" depends="required,maxlength"> <arg0 key="employee.name"/> <arg1 name="maxlength" key="${var:maxlength}" resource="false"/> <var> <var-name>maxlength</var-name> <var-value>10</var-value> </var> </field> <field property="vsex" depends="required,maxlength"> <arg0 key="employee.sex"/> <arg1 name="maxlength" key="${var:maxlength}" resource="false"/> <var> <var-name>maxlength</var-name> <var-value>5</var-value> </var> </field> <field property="vage" depends="required,integer,intRange"> <arg0 key="employee.age"/> <arg1 name="intRange" key="${var:min}" resource="false"/> <arg2 name="intRange" key="${var:max}" resource="false"/> <var> <var-name>min</var-name> <var-value>1</var-value> </var> <var> <var-name>max</var-name> <var-value>100</var-value> </var> </field> <field property="vmoney" depends="integer"> <arg0 key="employee.money"/> </field> </form> </formset> </form-validation> 要想在ActionForm里應用上Validator框架,就必須繼承ValidatorForm類; 在MyEclipse下新建ActionForm時可以將其SuperClass設置為“org.apache.struts.validator.ValidatorForm” 如果是已經建好的ActionForm要改為使用Validator驗證需如下操作: 導入org.apache.struts.validator.ValidatorForm包,將類ActionForm擴展類從原先的ActionForm改為ValidatorForm 而原先的public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)和 public ActionErrors validate(ActionMapping mapping, ServletRequest request) 以及Reset方法去除即可。 應用程序全局資源文件:ApplicationResources.properties 可以在文件里添加錯誤提示信息,格式為: 變量名:提示文本(注:若要使用中文信息則要在轉換之前將中文的文本填寫完,轉換后文件名后需要加上_zh_CN才會被系統識別為簡體中文) 內容如下: employee.name=員工姓名 employee.sex=員工性別 employee.age=員工年齡 employee.money=期望薪金 errors.required={0}不能為空,請填寫! errors.integer={0}必需為一個整數值 errors.range={0}必需為1~100之間的一個數字 errors.maxlength={0}的最大數不能越過{1}! 注:若需要換行可以在文本后面加上"<br>"; 以上的例子只是說明了資源文件的使用方法,但是如果就想這樣來顯示中文提示信息是不可行的, 轉換的命令是: native2ascii -encoding gb2312 ApplicationResources.properties ApplicationResources_zh_CN.properties native2ascii命令是Java JDK目錄下BIN目錄里的一個可執行文件,若發現不能執行,請修改系統環境變量,即在Path變量里加入"X:\...\jdk1.5.1\bin;",修改完需要重新啟動系統所配置的環境變量才可生效。 可將命令制作成批命令,注意:轉換格式后,在工程里需要手動刷新文件,否則項目不會識別你所做的改動 到這里Validator驗證框架的所有配置已經完成此時你只要在頁面相應位置放入<html:errors/>標簽即可顯示,這樣是將所有的錯誤在同一個地方顯示,若想實在在每個輸入控件后面顯示錯誤提示,就必須手動設置標簽的屬性,如:<html:errors property="XXX">; |
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1681576
久久不醉