这里以jakarta-struts-1.1为例说明validator验证的配置方法。
- 引用jar包(jakarta-struts-1.1\jakarta-struts-1.1\lib)
实现validator验证需要struts的两个jar包:commons-validator.jar和jakarta-oro.jar
- 设置资源文件
在src目录下建立资源文件ApplicationResources.properties,如果其中包含中文,还需要转换成Unicode编码,可以使用Eclipse插件PropertyEditor,URL:http://propedit.sourceforge.jp/eclipse/updates/,或者使用naitve2ascii
user.usrName=姓名 user.usrPwd=密码 user.usrPwdConfirm=确认密码 user.usrComment=用户说明 errors.required={0}不能为空# errors.invalid={0}含有非法字符# errors.minlength={0}的位数不能小于{1}# errors.maxlength={0}的位数不能大于{1}# errors.twofields={0}与{1}不相等#
- 添加validator配置文件(jakarta-struts-1.1\jakarta-struts-1.1\lib)
将如下两个文件复制到WEB-INF目录下(内容一般不需要修改,除非使用一下特殊的验证,后面会说明):
validator-rules_1_1.dtd
validator-rules.xml
在WEB-INF目录下新建验证文件:
validation.xml(以登录页面为例说明)
<?xml version="1.0" encoding="UTF-8"?> <form-validation> <formset> <form name="/user"> <field property="usrName" depends="required,maxlength,mask"> <arg0 key="user.usrName" /> <arg1 name="maxlength" key="${var:maxlength}" resource="false" /> <arg2 name="mask" key="$(var:mask)" resource="false" /> <var> <var-name>maxlength</var-name> <var-value>20</var-value> </var> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="usrPwd" depends="required,twofields,maxlength,mask"> <arg0 key="user.usrPwd" /> <arg1 key="user.usrPwdConfirm"/> <arg2 name="maxlength" key="${var:maxlength}" resource="false" /> <arg3 name="mask" key="$(var:mask)" resource="false" /> <var> <var-name>maxlength</var-name> <var-value>20</var-value> </var> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> <var> <var-name>secondProperty</var-name> <var-value>usrPwdConfirm</var-value> </var> </field> <field property="usrComment" depends="maxlength,mask"> <arg0 key="user.usrComment" /> <arg1 name="maxlength" key="${var:maxlength}" resource="false" /> <arg2 name="mask" key="$(var:mask)" resource="false" /> <var> <var-name>maxlength</var-name> <var-value>20</var-value> </var> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> </form> </formset> </form-validation>
- 修改struts配置文件 struts-config.xml
...... <action-mappings> <action name="userForm" parameter="handler" path="/user" scope="request" type="com.mycompany.action.UserAction" input="/user.jsp"> </action> </action-mappings> <message-resources parameter="ApplicationResources"/> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" /> </plug-in> ......
注意:需要设置input="/user.jsp",否则运行报错
- UserForm应该继承自ValidatorActionForm 而不是ActionForm
public class UserForm extends ValidatorActionForm
- User.jsp添加验证失败的返回信息代码
在需要显示错误信息的地方插入<html:errors/>即可
到这里,就可以实现基本的验证了。