框架能够克服在ActionForm Bean中以编程方式进行数据验证的局限,它允许Struts应用灵活的配置验证规则,无需编程。
使用Validator框架之前的准备:
包准备:Struts Validator框架主要依赖两个JAR文件jakarta-oro.jar和commons-validator.jar,
两个xml文件:验证规则文件validator-rules.xml以及自定义表单验证规则文件validation.xml,(附加说明:validator-rules.xml保存了一组
通用的规则,一般无须改动。可以去struts-core-1.x.jar下的org.apache.struts.validator 下拷贝。
下面对如何在Struts中使用validator框架进行详细的介绍:
第一步:为了能在项目中使用validator框架,在struts-config.xml文件中添加一组插件,把验证规则文件和自定义验证规则文件引入到web应用中来。
注解 如果存在多个自定义验证规则,如validation_01.xml,validation_02.xml,则直接写在value后,用逗号隔开。
如 value=“/WEB-INF/validator-rules.xml,validation_01.xml,validation_02.xml”
第二步:编写validation.xml,对表单进行验证
注解:form标签内的属性
Name属性:name属性指定验证规则的逻辑名,这个名字必须是唯一的。可以是action的映射路径 form
Classname和method属性:classname和method属性分别指定实现验证规则逻辑的类和方法(可选)。 field
MethodParams:属性用来指定验证方法包含的参数,多个参数之间以逗号隔开,验证时也将按照此顺序来进行
Msg属性:msg属性指定来自于Resource Bundle(资源文件ApplicationResource_*.xml)中的消息key。当验证失败
时,Validator框架将根据这个消息key到resource Bundle中查找匹配的消息文本。
Depends属性:depends属性指定在调用当前验证规则之前必须先调用的其他验证规则。
第三步:资源文件(ApplicationResource.properties)的准备
例如:
提示错误的key:
errors.required={0}/u5fc5/u987b/u586b/u5199.
errors.maxlength={0}/u4e0d/u80fd/u5927/u4e8e{1}/u5b57/u7b26.
表单key:
表单名.username=/u7528/u6237/u540d
表单名.password=/u5bc6/u7801
第四步:Action指定校验
<action>中添加validate=true.