`
gstarwd
  • 浏览: 1525607 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Validator框架-validation.xml

阅读更多

validation.xml文件是Validator框架需要的另一个配置文件。该文件是特定于应用程序的,由开发人员自己来创建。它描述了那些具体应用中的ActionForm所使用的validator-rules.xml文件中的有效性验证规则。通过ActionForm在 validation.xml文件中配置所需要的验证规则,开发人员就不必将验证逻辑硬编码放在ActionForm的内部。一个简单的 validation.xml文件如例程5-7所示。

例程5-7  validation.xml实例

 

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3// EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

<form-validation> <formset> <form name="loginActionForm"> <field property="username" depends="required"> <arg0 key="prompt.username"/> </field> <field property="password" depends="required, minlength,maxlength"> <arg0 key="prompt.password"/> <arg1 key="${var:minlength}" name="minlength" resource="false"/> <arg2 key="${var:maxlength}" name="maxlength" resource="false"/> <var> <var-name>maxlength</var-name> <var-value>16</var-value> </var> <var> <var-name>minlength</var-name> <var-value>3</var-value> </var> </field> </form> </formset> </form-validation>

validation.xml文件中包含form-validation、global、formset、form、field、msg、arg、var等元素。下面对它们一一进行介绍。
1.form-validation元素

<form-validation>元素是validation.xml文件的根元素。它包含2个子元素,即<global>元素和<formset>元素,其在dtd中的定义如下:

<!ELEMENT form-validation (global*, formset*)>

2.global元素

global元素允许开发人员配置可以用在文件其他部分中的constant元素,也就是全局常量。这与在Java文件中定义一个常量,然后在类中使用该常量的方式相似。constant元素以名字和值的方式出现。例如:

<form-validation>
<global>
<constant>
<constant-name>zip</constant-name>
<constant-value>^\d{5}\d*$</constant-value> <!--常量值,这里是一个正则表达式-->
</constant>
<global>
<formset>
<form name="registerForm">
<field property ="zipPostal" depends="required, mask">
<arg0 key="registerForm.zippostal.displayname"/>
<var>
<var-name>mask</var-name>
<var-value>${zip}</var-value>
</var>
</field>
</form>
</formset>
<form-validation>

在以上代码中,在<global>元素中定义了一个常量zip,在<formset>元素中可以通过${constant-name}的形式,如${zip},来引用这个常量。

3.formset元素

<formset>元素包含两个子元素,即<constant>元素和<form>元素。<constant>元素可以出现零次或多次,<form>元素至少出现一次。这里的<constant>元素中定义的constant常量是局部常量,只能在当前<formset>元素内引用。

<formset>元素有2个属性,即language和country,它们用于国际化。

4.form元素

form元素定义了一套将要进行有效性验证的域(field),其name属性指定对应表单的名字,并且name属性与Struts配置文件中的form-bean元素的name属性一致。

form元素可以包含多个field元素。

5.field元素

一个field元素对应于一个表单中需要验证的字段。它的属性如表5-3所示。

表5-3  field元素的属性

   

   

property

将要进行有效性验证的ActionForm的属性名

depends

指定字段的验证规则,多个规则之间以逗号分开

page

如果对应的ActionForm是一个跨页表单,可能包括一个page属性与表单中的page属性相对应,用户指定该字段应该在哪一页被处理

indexedListProperty

后循环列表,执行该域的有效性验证

6.msg元素

field元素的msg子元素指定验证规则对应的消息文本。该消息文本将替代默认的消息文本,即validator-rules.xml中定义的消息文本。msg元素的值必须是应用程序消息资源包中的某个消息资源的关键字。例如:

<field property="lastName" depends="required, mask" page="1">
<msg name="mask" key="registerForm.lastname.maskmsg"/>
<arg0 key="registerForm.lastname.displayname"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
</field>

当lastName字段有效性验证失败时,显示的错误消息是消息资源中registerForm. lastname.masking键所指的消息文本。

msg元素的属性如表5-4所示。

表5-4  msg元素的属性

   

   

key

指定绑定的消息资源中的消息文本或直接指定消息文本

name

指定验证规则的名字

bundle

指定绑定的消息资源的名称

resource

当该属性值为true时,表示使用来自消息资源的消息文本;当该属性值为false时,表示直接在key属性中设置消息文本。默认值为true

7.arg元素

arg元素可以用来向消息文本中传递参数。它有name、key、resource和position等几个属性,name、key、resource属性的含义与msg元素的属性相当。position属性用来指定消息文本中的替换位置。

例如,例程5-8是关于minlength验证规则的配置文件。

例程5-8  minlength验证规则的配置文件

<field property="password"
depends="required, minlength">
<arg0 key="prompt.password" />
<arg1 key="${var:minlength}" name="minlength"
resource="false" position="1"/>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field>

在validator-rules.xml文件中,minlength验证规则的默认消息文本是:

{0} can not be less than {1} characters.

在例程5-8中,position属性的值为1的arg元素定义中,name属性的值为minlength,表示仅适用于minlength验证规则,resource属性的值为false,表示可直接在key属性中设定消息文本,即key属性的值为${var:minlength},在这里是3。把以上代码中两个arg的key值分别放入minlength验证规则的默认消息文本中的相应位置,最后返回的消息文本应该是:

 password can not be less than 3 characters.

8.var元素

var元素用来向验证规则传递参数。例如在例程5-7中,定义了maxlength和minlength两个参数,分别传递给maxlength和minlength验证规则。


arg元素也可以访问var元素,语法形式是${var:var-name}。例如,在例程5-7中的${var:maxlength}和${var:minlength}的使用。

分享到:
评论

相关推荐

    validator-rules.xml,validation.xml

    `validator-rules.xml`和`validation.xml`是Struts 1.2中用于实现数据验证的关键配置文件。 `validator-rules.xml`是Struts 1.2的全局验证规则文件,它定义了一组通用的验证规则,这些规则可以被多个ActionForm对象...

    hibernate-validator-4.0.0.CR1-dist.zip

    Hibernate Validator,作为Java Bean Validation框架的实现,是Hibernate组织提供的一款强大的验证工具。本文将深入探讨Hibernate Validator 4.0.0.CR1版本,揭示其核心特性和实际应用。 一、Hibernate Validator...

    apach基于数据验证的工具包 commons-validator-1.3.1.jar

    2. **配置(Configuration)**:Validator框架允许通过XML配置文件定义验证规则,这使得可以在不修改代码的情况下更改验证策略。在`commons-validator-1.3.1.jar`中,你可以找到相关的配置文件,如`validation.xml`...

    struts2中两种validation.xml的配置方式

    在Struts2框架中,`validation.xml`是用于定义验证规则的重要配置文件。根据所提供的信息,我们可以了解到文章主要探讨了Struts2中两种不同的`validation.xml`配置方式,并且通过一个具体的例子进行了说明。下面将对...

    hibernate-validator-5.0.1.final-sources.jar源码

    - **创建Validator**:通过`ValidatorFactory`获取`Validator`实例,`ValidatorFactory`会根据配置文件和类路径下的`META-INF/validation.xml`初始化验证环境。 - **定义验证规则**:在Java Bean上使用验证注解...

    hibernate-validator-4.1.0.Final-dist.tar.gz

    Hibernate Validator 是Java Bean Validation的实现,它提供了一种在应用程序中进行数据验证的规范和框架。作为Hibernate ORM框架的一部分,它使得开发者能够方便、高效地对输入数据进行校验,从而提高代码质量和...

    jsf-validation.zip_JSF_jsf validation_zip

    3. ** faces-config.xml配置文件**:在这个XML文件中,JSF应用的配置信息会被定义,包括验证器的注册,这些验证器可以通过`&lt;validator&gt;`标签与特定的输入组件关联。 4. **JSF页面(.xhtml)**:源码可能包含了示例...

    validation-api-1.0.0.GA

    《validation-api-1.0.0.GA:深入理解Java Bean验证框架》 在Java开发中,数据验证是一项至关重要的任务,确保输入的数据符合预期格式和规则,避免因错误数据导致的问题。`validation-api-1.0.0.GA`正是Java Bean...

    Validator验证框架.pdf

    Validator框架依赖于两个主要的XML配置文件来定义验证规则: - **validator-rules.xml**:包含了一组通用的验证规则,这些规则对于大多数的Struts应用都是适用的。通常情况下,这个文件不需要开发者修改,可以直接...

    hibernate-validator-annotation-processor-5.1.0.CR1.zip

    Hibernate Validator 是一个流行的开源验证框架,它基于JSR 303/JSR 349(Bean Validation)标准,为Java应用程序提供了强大的数据验证功能。"Hibernate Validator Annotation Processor 5.1.0.CR1"是该框架的一个...

    Struts2验证框架的配置及validation.xml常用的验证规则

    本文将详细介绍Struts2验证框架的配置方法以及validation.xml文件中常用的验证规则。 ### 验证框架的配置 在Struts2中,验证主要通过在Action类的关联配置文件validation.xml中定义规则来实现。该文件通常与Action...

    commons-validator-1.7-bin.tar.gz

    《Apache Commons Validator 1.7:企业级验证框架详解》 Apache Commons Validator 是一个用于进行数据验证的开源组件,它是Apache软件基金会 Commons 项目的一部分。这个组件为Java开发者提供了一套强大而灵活的...

    commons-validator.doc 用法介绍

    这些库包含了Validator框架的类和方法,使得你可以利用它们来实现验证功能。 **配置验证** 1. 创建`validator.xml`文件:该文件定义了验证规则,通常放在`WEB-INF`目录下。 2. 在`struts-config.xml`中引入...

    hibernate-release-5.2.2.Final

    4. **hibernate-validator.jar**:提供了Bean Validation规范的实现,用于验证Java Bean属性的值,确保数据的正确性。在Hibernate中,数据验证可以集成到持久化操作中,避免无效数据的入库。 5. **dom4j.jar**:这...

    struts2 validation.xml 验证规则代码解析

    Struts2 Validation.xml 验证规则代码解析是 Struts2 框架中的一种验证机制,主要用于在用户提交表单时验证用户输入的数据。该机制通过定义 Validation.xml 文件来实现,文件中包含了一系列的验证规则,这些规则将被...

    Struts2 validation.xml 经典验证

    在Struts2框架中,`validation.xml`是用于定义数据校验规则的重要配置文件,它允许开发者对Action类中的字段进行各种格式的验证,确保数据的完整性和正确性。通过`validation.xml`,我们可以实现对日期、字符、数字...

    commons-validator-1.3.1.zip

    1. **源代码**:`src`目录下包含了所有Validator框架的Java源代码,包括各种验证器类、上下文处理类以及与国际化相关的资源文件。这些源代码提供了详细的实现逻辑,可以帮助开发者理解和定制验证规则。 2. **构建...

    hibernate-release-4.3.0.Beta2 lib

    - `hibernate-validator.jar`: 用于数据验证,基于 Bean Validation 规范,确保入参合法性。 - `hibernate-jpa-2.1-api.jar`: 提供 JPA 2.1 的 API,方便开发者调用。 - `ehcache.jar`: EhCache 是 Hibernate ...

    validator的两种框架验证的程序代码—可导入运行

    改动了struts-config.xml里&lt;form-bean&gt;里的type,并设置valid.jsp里的属性类型,validation.xml里的里的name对应struts-config.xml里ation里的path,此外validAction.java里取出表单里元素的值的方法也有变化。

    Struts Validator 开发指南

    Struts Validator 是 Apache Struts 框架的一个重要组成部分,它提供了一种方便的方式来验证用户输入数据的有效性。Struts 通过插件(Plugin)机制来集成 Validator 功能,使得开发者可以轻松地在应用中添加数据验证...

Global site tag (gtag.js) - Google Analytics