写了一个DEMO
步骤:
第一步:准备页面文件
在页面要显示的错误信息的地方添加标签:
<html:errors property="username" /> property属性值与要验证文本框的property一样
第二步:设置FormBean继承ValidatorForm方法
formbean必须继承 ValidatorForm 类
第三步:定义Action
完成后台逻辑,无变化
第四步:选择验证规则validator-rules.xml
查看validator-rules.xml文件,选择验证规则
第五步:查看validation.xml文件
第六步:创建validation.xml文件
为应用中的ActionForm配置所需的验证规则,代替ActionForm类中以validate方法的方式来实现验证
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<!-- 校验规则的根元素 -->
<form-validation>
<!--所有需要校验的form都放在formset元素中-->
<formset>
<!--定义需要验证的表单,此处的name必须与struts-config.xml中的ActionForm 的name相同-->
<form name="loginform">
<!--定义需要验证的文本域-->
<field property="username" depends="required">
<arg0 key="insert.error.name"/>
</field>
</form>
</formset>
</form-validation>
注意:
1、form元素为表单配置验证规则,name必须与struts-config.xml中的ActionForm 的name相同
2、field用于为表单字段配置验证规则,property与页面文本框的property属性名一致
3、denpends元素为改字段所采用的验证规则,如果有多个则用逗号分开
4、<msg>元素指定验证规则对应的消息文本框,将替代validator-rules.xml文件中位验证规则配置的默认消息文本。name为对应的验证
如果上面用<msg name="required" key="user.required" resource="ture" />而非
<arg0>
验证失败,规则将自动使用国际化资源文件中msg中key值指定的消息,而非默认的error.required消息.如果多了resource="false" ,则不从资源文件中获取,而是直接用key表示
第七步:修改配置文件plug-in标签
向struts-config.xml中添加validate属性
加入plug-in标签的位置必须在配置文件的最后,<message-resources>之后
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
资源文件中:
insert.error.name=username
error.required={0} is required
第八步:完成啦~