Struts 验证框架配置和使用

本文介绍如何在Struts2项目中配置验证框架,包括创建Web项目、配置验证规则文件validator-rules.xml和validation.xml、整合commons-validator.jar及dtd文件、在struts-config.xml中配置插件等步骤。
一、 操作步骤:
1. 创建Web项目
2. 如果所用的IDE自带有验证框架的架包(jakarta-oro.jar\commons-validator.jar)就不用拷贝到WEB-INF/lib下,否则就的拷贝
3. 验证框架下有2个文件,分别是validator-rules.xml(一组验证规则)和validation.xml
(自己配置的相关字段验证,这个xml是需要自己建)
4. 前面的准备工作做完后,就开始相关的配置了,在验证框架中,必须要有一个.dtd
(它是commons-validator.jar中的一个文件,所以需要解压该架包才能获得,具体操作如下:自己所建项目下->WebRoot->WEB-INF->lib-> commons-validator.jar解压后->按照这个路径 (org\apache\commons\validator)-> resources->找到你所需要的相关.dtd文件)
5. 将validator-rules.xml中的错误信息拷贝到structs框架中的ApplicationResources.properties(资源文件)中,然后将validator-rules.xml中的
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>插件拷贝到struts-config.xml中的(<message-resources/>下)
* 注 * :Form要继承ValidatorForm并且屏蔽掉validate方法
// public ActionErrors validate(ActionMapping mapping,
// HttpServletRequest request) {
// // TODO Auto-generated method stub
// return null;
// }
6.在validation.xml中进行相关的验证配置如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" "validator_1_0.dtd" >
<form-validation>
<formset>
<form name="loginForm">//struts-config.xml中formBean的名字
<field property="username" depends="required,maxlength,minlength">
//property相关验证字段的名称,depends所对应的验证器
<arg0 key="用户名" resource="false"/>
//当resource为TRUE时,表示使用来自resource Bundle中的消息,反之指定key中消息
<arg1 name="maxlength" resource="false" key="${var:maxlength}"/>
<var>
<var-name>maxlength</var-name>
<var-value>8</var-value>
</var>
<arg2 name="minlength" resource="false" key="${var:minlength}"/>
<var>
<var-name>minlength</var-name>
<var-value>2</var-value>
</var>

</field>
</form>
</formset>
所注意的问题:1、如<arg0 key="用户名" resource="false"/>在arg0中如果不设置验证器,那么就被所有的验证器通用
2、如<arg1 name="maxlength" resource="false" key="${var:maxlength}"/>中的arg1要与错误信息中所对应的该验证器的参数一至(errors.maxlength={0} can not be greater than {1} characters.)
如果(errors.maxlength={0} can not be greater than {2} characters.)的话,那么就必须将2改为1

7.jsp中的前台验证:
<htm:form arction =”” onsubmit=” return validateLoginForm(this) ”>
<html:javascript formName="loginForm"/>
//对应formBean的名字
8.配置完毕
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值