主要是两个配置文件和资源文件的修改,然后就是在jsp中输出验证的结果
validator-rules.xml是验证注册类,用于定义验证逻辑,它的部分代码
<validator name="required"
<!—①-->
className="org.apache.struts.util.StrutsValidator"
method="validateRequired"
<!—② -->
methodParams="java.lang.Object,
org.apache.commons.validator.validatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required">
<!—③ -->
<javascript><![CDATA[
function validateRequired(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
这个是required验证的部分代码。
validation.xml文件用于定义实际应用中的规则验证(哪些域需要验证,要验证哪些验证(比如required验证、minlength验证等等))
ApplicationResources文件主要是用于保存验证结果信息
我用的是eclipse+myeclipse
首先要在项目里面加入struts框架,这个不用说了吧,然后添加一个validation.xml文件
<form-validation>
<formset>
<form name="RegisterForm">
<field property="userName" depends="required,minlength,maxlength">
<arg0 key="label.username" />
<arg1 name="minlength" key="3" resource="false" />
<arg1 name="maxlength" key="17" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>17</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
form name="RegisterForm指定验证名,也是actionform的名称,后面会用到。
field property="userName指定要验证的域,也就是actionform中的属性
depends="required,minlength,maxlength指定要通过哪些验证,这里有required,minlength,maxlength验证,他们依次进行验证,如果前面的验证没有通过,那么错误信息就保存到错误变量里面,不在进行下面的验证
arg0 key="label.username则是在资源ApplicationResources文件中定义的字段,验证结果中信息显示需要。
如errors.required={0} is required,arg0的值会代替{0},是第一个变量
arg1 name="minlength" key="3" resource="false" ,是第二个变量,但要注意的是 resource="false" ,表示它直接采用key属性所指定的值3去代替{1},而不使用ApplicationResources文件中定义的字段,下面有对minlength的定义
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
这些定义完之后,就是对资源文件的修改了,就是指定字段的替换
最后在jsp文件中运用验证,简单的一段代码:
<td width="219" height="30" align="right">
<font size="2">
<b>
<bean:message key="label.username" />
:
</b>
</font>
</td>
<td width="218" height="30">
<html:text property="userName" maxlength="17" size="20" styleClass="smallInput" />
<font color="red">
*
</font>
</td>
<td width="291" height="30">
<font size="2" color="red">
<b>
<html:messages id="message" property="userName">
<li>
<bean:write name="message" />
</li>
</html:messages>
</b>
</font>
</td>
</tr>
红色部分就是进行验证后的信息显示,其中蓝色的部分名称要与validation.xml文件中的保持一致!!!