<form-validation>
<formset>
<constant>//全局常量定义
<constant-name>phone</constant-name>//电话号码
<constant-value>^\(?(\d{3});\);?[-| ]?(\d{3});[-| ]?(\d{4});$</constant-value>
</constant>
<form name="loginForm"> //form名称
<field property="username" depends="required,maxlength,minlength,mask"> //property名称
<msg name="required" key="username.required"/> //对应properties文件的key(页面显示的错误提示);
<msg name="maxlength" key="username.maxlength"/>
<msg name="minlength" key="username.minlength"/>
<msg name="mask" key="username.legal"/>
<arg0 name="maxlength" key="${var:maxlength}" resource="false" /> //设置参数
<arg1 name="minlength" key="${var:minlength}" resource="false" />
<arg2 name="mask" key="${var:mask}" resource="false" />
<var> //变量
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
<var>
<var-name>mask</var-name> //用户名的规定的字符内
<var-value>^[_a-z0-9-]+(._a-z0-9-]+);*a-z0-9-]+(.a-z0-9-]+);*$</var-value>
</var>
</field>
<field property="psw1" depends="required,minlength,twofields"> //两个密码是否一致的检查
<msg name="required" key="psw1.required"/>
<msg name="minlength" key="psw1.minlength"/>
<msg name="twofields" key="errors.twofields1"/>//这个是自己定义的~~,在validator-rules.xml中有添加的~~
<arg0 name="minlength" key="${var:minlength}" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
<var>
<var-name>secondProperty</var-name>
<var-value>confirm1</var-value>
</var>
</field>
<field property="email" depends="email">
<msg name="email" key="error.email"/> //EMAIL
</field>
<field property="teleph" depends="mask"> //电话号吗
<msg name="mask" key="error.teleph"/>
<arg0 name="mask" key="${var:mask}" resource="false" />
<var>
<var-name>mask</var-name>
<var-value>${phone}</var-value>
</var>
</field>
<field property="day" depends="range"> //指定范围
<asg name ="range" key="error.day" />
<arg1 name="range" key="${var:min}" resource="false" />
<arg2 name="range" key="${var:max}" resource="false" />
<var>
<var-name>min</var-name>
<var-value>1</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>31</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
以上是validation.xml中的验证.
其中twofields是自己定义了,先写一个类:
package web.common;
import org.apache.commons.validator.ValidatorUtil;
import org.apache.commons.validator.Field;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.GenericValidator;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.validator.Resources;
import javax.servlet.http.HttpServletRequest;
public class VaConsistent {
public static boolean validateTwoFields( Object bean, ValidatorAction va,
Field field, ActionErrors errors,
HttpServletRequest request); {
String value = ValidatorUtil.getValueAsString(bean, field.getProperty(););;
String sProperty2 = field.getVarValue("secondProperty");;
String value2 = ValidatorUtil.getValueAsString(bean, sProperty2);;
if (!GenericValidator.isBlankOrNull(value);); {
try {
if (!value.equals(value2);); {
errors.add(field.getKey();,Resources.getActionError(request, va, field););;
return false;
}
}
catch (Exception e); {
errors.add(field.getKey();,Resources.getActionError(request, va, field););;
return false;
}
}
return true;
}
}
在文件validator-rules.xml中<global>之间加上:
<validator name="twofields" classname="web.common.VaConsistent" method="validateTwoFields" methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends="required" msg="errors.twofields">
<javascript><![CDATA[
function validateTwoFields(form); {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();;
oTwoFields = new twofields();;
for (x in oTwoFields); {
var field = form[oTwoFields[x][0]];
var secondField = form[oTwoFields[x][2]("secondProperty");];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio' ||
field.type == 'password'); {
var value;
var secondValue;
// get field's value
if (field.type == "select-one"); {
var si = field.selectedIndex;
value = field.options[si].value;
secondValue = secondField.options[si].value;
} else {
value = field.value;
secondValue = secondField.value;
}
if (value != secondValue); {
if (i == 0); {
focusField = field;
}
fields[i++] = oTwoFields[x][1];
bValid = false;
}
}
}
if (fields.length > 0); {
focusField.focus();;
alert(fields.join('\n'););;
}
return bValid;
}]]></javascript>
</validator>
这样就OK了.
tracy_katrina束于2005-1-18 22:01
分享到:
相关推荐
`FormValidation`是一个强大的JavaScript库,它结合了`jQuery`和`Bootstrap`框架,使得表单验证变得更加简单易用。本文将详细介绍如何使用`FormValidation`进行表单验证,并探讨与`jQuery`和`Bootstrap`的集成。 ...
FormValidation框架提供了丰富的内置验证器,涵盖了常见的验证需求,如邮箱、电话号码、日期等。同时,它也允许开发者根据项目需求自定义验证器,通过扩展其API,创建个性化的验证规则。自定义验证器可以极大地提高...
- **校验规则**:`FormValidation.js` 提供了一系列内置的验证规则,如非空、邮箱、手机号、日期格式等。开发者可以根据需求选择或自定义这些规则。 - **动态添加元素的校验**:在某些交互丰富的Web应用中,用户...
赠送jar包:jakarta.validation-api-2.0.2.jar; 赠送原API文档:jakarta.validation-api-2.0.2-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.2-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...
Hibernate Validator提供了丰富的注解和API,用于在运行时验证对象的属性,如电子邮件地址、电话号码等,确保它们符合预定义的规则。4.3.0.Final是这个库的一个特定版本,它可能包含了bug修复和改进,适用于Java SE...
赠送jar包:validation-api-2.0.1.Final.jar; 赠送原API文档:validation-api-2.0.1.Final-javadoc.jar; 赠送源代码:validation-api-2.0.1.Final-sources.jar; 赠送Maven依赖信息文件:validation-api-2.0.1....
赠送jar包:validation-api-2.0.1.Final.jar; 赠送原API文档:validation-api-2.0.1.Final-javadoc.jar; 赠送源代码:validation-api-2.0.1.Final-sources.jar; 赠送Maven依赖信息文件:validation-api-2.0.1....
赠送jar包:jakarta.validation-api-2.0.1.jar; 赠送原API文档:jakarta.validation-api-2.0.1-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...
1. **丰富的预设规则**:该插件内置了多种验证规则,如必填项、电子邮件格式、电话号码、日期等,满足了大多数常见的表单验证需求。 2. **自定义验证**:除了预设规则,Validation Engine还允许开发者创建自定义...
首先,`validation-api.jar`是Java Bean Validation API的标准实现,定义了一套标准的验证注解,如`@NotNull`, `@Min`, `@Max`等。`validation-api-1.1.0.beta1.jar`是这个API的一个版本,包含了用于验证对象的规范...
赠送jar包:validation-api-1.1.0.Final.jar; 赠送原API文档:validation-api-1.1.0.Final-javadoc.jar; 赠送源代码:validation-api-1.1.0.Final-sources.jar; 包含翻译后的API文档:validation-api-1.1.0....
`Validation`是Java世界中用于验证对象的有效性的一种机制,它使得我们可以方便地定义和执行数据验证规则。在给定的标题和描述中提到了三个重要的JAR包:`validation-api`, `hibernate-validator`以及`jboss-logging...
赠送jar包:jakarta.validation-api-2.0.1.jar; 赠送原API文档:jakarta.validation-api-2.0.1-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...
这可能包括检查输入的长度、格式(如电子邮件地址或电话号码)或特定业务逻辑。在`validationprovider_demo`中,可能有多个示例展示了如何创建和应用这些规则。 3. **错误提示**:当输入不符合验证规则时,`...
在IT领域,"Validation"通常指的是验证,这是一个关键的概念,主要应用于数据输入、软件开发、网络安全等多个场景。在这个上下文中,我们可能是在讨论Web应用程序中的表单验证或者数据库验证等。 首先,表单验证是...
《FormValidation:高效表单验证的利器》 在Web开发中,表单验证是一个不可或缺的环节,它确保了用户输入的数据符合预设的规范,从而维护数据的完整性和安全性。"FormValidation"是一款专为此目的设计的强大工具,...
其次,`package.json`是Node.js项目的配置文件,它记录了项目的依赖关系、作者信息、版本号等。在jQuery Validation 1.17.0版本中,通过这个文件可以了解项目所依赖的其他库,如jQuery本身和其他开发或构建工具,这...
《Bean Validation规范详解》 Bean Validation是Java平台上用于对象验证的一种标准,旨在提供一种简单而强大的方式来确保Java Bean对象的正确性和完整性。本规范文档深入解析了Bean Validation的各个方面,包括其...
1. **基本验证**:如非空检查、长度限制、邮箱格式验证、电话号码验证等,这些常见规则可以通过内置的验证方法直接应用。 2. **自定义验证**:允许开发者根据项目需求创建自己的验证规则,提供高度定制化的验证体验...
Bean Validation API.release版本 JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,现在一共有两个规范:BeanValidation1.0(即JSR303)和BeanValidation1.1(即JSR349),主要用于对数据进行校验,确保输入进来...