使用Validator包括如下三步:1、啟用Validator插件;2、生成Form Bean類;3、修改配置文件。下面將詳細說明如何配置和使用Validator。 一、啟用Validator插件 雖然在Struts工具包中包含了Validator,但默認情況下Validator是沒有被啟用的。若要啟用Validator,必須在struts-config.xml文件中添加入下的代碼: <!-- Validator Configuration --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/> </plug-in> 其中,指定的兩個配置文件的路徑應為相對于所在模塊的路徑,以上代碼應按照和stuts-config.xml配置文件相對應的DTD文件所要求的格式,放到合適的位置。 二、生成Form Bean類 為了使用Validator,生成的Form Bean類必須繼承ActionForm的子類ValidatorForm。 在Form Bean類中要包含和Form表單中各字段相對應的成員變量,然后公開各成員變量的get及set方法。 示例代碼如下: package com.my; import org.apache.struts.validator.ValidatorForm; public class MyForm extends ValidatorForm{ public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } private String name; private String age; } 三、修改配置文件 在struts-config.xml文件中指定Form Bean。 示例代碼如下: <form-beans> <form-bean name="MyForm" type="com.my.MyForm"/> </form-beans> Struts開發(fā)包中存在validatotr-rules.xml文件,將其拷貝到應用模塊的WEB-INF目錄下(當然也可以自己新建并編寫此文件)。在同一目錄下新建validation.xml文件,并編寫驗證內容。為了方便編寫,引入相應的DTD文件(推薦validator_1_1_3.dtd)。 示例代碼如下: <form-validation> <formset> <form name="MyForm"> <field property="name" depends="required,minlength,maxlength"> <arg0 key="name" resource="false"/> <arg1 name="minlength" key="${var:minlength}" resource="false"/> <arg1 name="maxlength" key="${var:maxlength}" resource="fasle"/> <var> <var-name>minlength</var-name> <var-value>4</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>16</var-value> </var> </field> <field property="age" depends="required,integer,intRange"> <arg0 key="age" resource="false"/> <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> </form> </formset> </form-validation> 由于Validator要從資源文件中讀取Error Messages,所以還要配置資源文件。在com.my包中新建一資源文件,取名為application.properties(擴展名必須為propertyies),其內容如下: # Struts Validator Error Messages errors.required={0} is required. errors.minlength={0} can not be less than {1} characters. errors.maxlength={0} can not be greater than {1} characters. errors.invalid={0} is invalid. errors.byte={0} must be a byte. errors.short={0} must be a short. errors.integer={0} must be an integer. errors.long={0} must be a long. errors.float={0} must be a float. errors.double={0} must be a double. errors.date={0} is not a date. errors.range={0} is not in the range {1} through {2}. errors.creditcard={0} is an invalid credit card number. errors.email={0} is an invalid e-mail address. 為了使容器能夠加載資源文件,還要在struts-config.xml文件中進行設置,在適當位置添加如下代碼: <message-resources parameter="com.my.application"/> 四、至此,Validator配置工作已經完成。若要測試Validator,還需要編寫表單(JSP)頁面,建立Action以及配置ActionMapping等工作,請查看相關章節(jié)。 |
|