变量类型为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.
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.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货