转载自:http://liuyinhuan.iteye.com/blog/273595
Struts提供了表单输入的自动验证功能,即使用validator动态验证框架。其使用步骤如下:
1、配置
* 创建properties资源文件,如:
login.username=用户名
login.password=密码
errors.required={0},is required.
* 在WEB-INF下添加validator-rules.xml文件(Struts自带的原验证规则)
* 在WEB-INF下添加validation.xml文件(自定义验证规则,可多个),如:
<form-validation>
<formset>
<form name="loginForm">
<field property="username" depends="required">
<arg key="login.username"/>
</field>
<field property="password" depends="required">
<arg key="login.password"/>
</field>
</form>
</formset>
</form-validation>
上面的规则表明要对loginForm表单输入框的username和password验证,必须保证非空输入(required)
* 在struts-config.xml中添加(将资源文件和验证规则文件引入):
<message-resources parameter="res.MessageResource"/>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
上面的<plug-in>元素表明验证类org.apache.struts.validator.ValidatorPlugIn将根据value指定的规则文件进行验证。
* 在struts-config.xml中配置需要验证的ActionForm,我这里是使用动态ActionForm----就必须是DynaValidatorForm(也可自定义继承自ValidatorActionForm的需要验证的ActionForm,并去掉reset和validate方法):
<form-beans>
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>
</form-beans>
* 在struts-config.xml中配置要验证页面相应的action时,加上validate=true:
<action path="/login1"
type="cn.huan.struts.LoginAction"
name="loginForm"
scope="request"
validate="true"
input="/login1.jsp">
<forward name="success" path="/login_success.jsp"/>
</action>
2、使用
* 方法一:服务器端验证,如:
<html:form action="login1.do">
用户名:<html:text property="username"/><html:errors property="username"/><br>
密码:<html:password property="password"/><html:errors property="password"/><br>
<html:submit/>
</html:form>
如果没有输入值就提交就会显示提示信息:
* 方法二:客户端验证(用javascript),如:
<html:form action="login2.do" οnsubmit="return validateLoginForm(this)">
用户名:<html:text property="username"></html:text><br>
密码:<html:password property="password"/><br>
<html:submit/>
</html:form>
<html:errors/>
<html:javascript formName="loginForm"/>
如果没有输入值就提交就会显示提示信息:
到此,动态验证框架做完。。。。