变量类型为String才是正确的.我见commons-validator-1.1.3自带的例子中int数据类型在Bean中也是采用了String,例如:注意其中的age变量.在Bean中定义:
 String lastName, firstName, street1, street2, city, state, postalCode, age;
在xml中定义:
<form-validation>
   <global>
      <validator name="int"
                 classname="org.apache.commons.validator.TestTypeValidator"
                 method="validateInt"
                 methodParams="java.lang.Object,org.apache.commons.validator.Field"
                 msg="errors.int"/>      <validator name="required"
                 classname="org.apache.commons.validator.TestValidator"
                 method="validateRequired"
                 methodParams="java.lang.Object,org.apache.commons.validator.Field"
                 msg="errors.required"/>
   </global>
   <formset>
      <form name="ValidateBean">
         <field property="firstName"  depends="required">
             <arg key="nameForm.firstname.displayname"/>
         </field>    
         <field  property="lastName" depends="required">
               <arg key="nameForm.lastname.displayname"/>
         </field>
         <field  property="street1" depends="required">
               <arg key="nameForm.street1.displayname"/>
         </field>
         <field  property="state" depends="required">
               <arg key="nameForm.city.displayname"/>
         </field>
         <field  property="state" depends="required">
               <arg key="nameForm.state.displayname"/>
         </field>
         <field  property="postalCode" depends="required">
               <arg key="nameForm.postalCode.displayname"/>
         </field>
         <field  property="age" depends="required,int">
               <arg key="nameForm.age.displayname"/>
         </field>      </form>
   </formset>   
</form-validation>
-----------------------------------
age变量定义成String类型,在验证时采用validateInt方法判断是否为int.