Struts的Validator验证框架定义了常用的十几个验证规则,如:required(验证非空)、minlength(验证最小长度)、maxlength(验证最大长度)、intRange(验证整形范围)、email(验证电子邮件地址)、date(验证日期)等,并且实现了客户端的Javascript验证和服务器端验证,以下是在myeclipse环境下使用Validator验证框架的步骤:
一、 创建基于Struts的web工程
二、 将validator-rules.xml中以下代码拷贝到资源文件中
# Struts Validator Error Messages errors.required={0} is required. errors.minlength={0} can not be less than {1} characters. errors.maxlength={0} can not be greater than {1} characters. errors.invalid={0} is invalid.
errors.byte={0} must be a byte. errors.short={0} must be a short. errors.integer={0} must be an integer. errors.long={0} must be a long. errors.float={0} must be a float. errors.double={0} must be a double.
errors.date={0} is not a date. errors.range={0} is not in the range {1} through {2}. errors.creditcard={0} is an invalid credit card number. errors.email={0} is an invalid e-mail address. |
三、将validator-rules.xml中以下代码拷贝到struts-config.xml配置文件中,验证框架将以插件形式被注入struts框架
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/> </plug-in> |
四、创建validation.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0.1//EN" "validator_1_0_1.dtd" > <form-validation> <formset><!—配置特定于FormBean的验证-à <form name="loginActionForm"> <!—name:属性对应struts-config.xml中FormBean的名字-à <field property="login" depends="required"> <!—field:要验证的字段,即属性,depends:依赖的验证规则à <arg0 key="loginActionForm.login"/> <!—arg0:在资源包中配置错误消息的{0}参数值à </field> <field property="password" depends="required,minlength"> <!—多个验证规则用逗号分割à <arg0 key="loginActionForm.password"/> <arg1 key="#{var:minlength}" resource="false"/> <!—resource:false该key的值不在资源包中给出,而是在本文件给-à <var> <!—定义变量,给上面的key所用à <var-name>minlength</var-name> <var-value>6</var-value> </var> </field> </form> </formset> </form-validation>
|
五、实现客户端的javascript验证,只需在<form onSubmit=”return validateLonginActionForm(this);”>配置提交事件和使用<html:javascript formName=”loginActionForm”/>
<body> <font color="red"> <html:errors/> </font> //onSubmit=”return validate+formbean的名字” //<html:javascript formName=”formbean的名字”/> <html:form action="/login.do" onsubmit="return validateLoginActionForm(this);"> Login:<html:text property="login" /><br> Password:<html:text property="password" /><br> <html:submit/> </html:form> <html:javascript formName="loginActionForm"/> </body> |