在Struts中使用Validator验证框架详解

Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的Validator框架,在Struts中已经呆了这个框架。

Validator主要依赖两个jar包

Jakarta-oro.jar:-提供一组处理文本的类,具有文本替换、过滤、和分割功能。

Commons-validator.jar:提供了一个简单、可扩展的验证框架,包含了通用的验证方法和验证规则。

在用Struts中用这个框架,需加入这两个包,用起来感觉还不错。

下面介绍一下。

Validator采用基于两个xml文件的方式来配置验证规则,分别为validation.xml,validator-rules.xml。在struts应用中,需放到web-inf目录下。

1.validator-rules.xml

这个文件包含了一组验证规则,对所有struts应用都适用。一般情况不用修改这个文件,除非要修改或扩展默认规则。如果要给应放到另一个xml文件中,而不是直接添加到validator-rules.xml文件中,这样当Validator升级时,不用修改validator-rules.xml文件。

2.validator.xml文件

这个文件是针对于具体struts应用的,他可以为应用中的ActionForm配置验证规则。而不用编码实现验证。

例如一个验证登陆form的例子,要求用户名必须填写,秘密要求必填、最大、最小长度及其内容的要求。

代码

<form-validation>
   <global>
     <!-- 密码由数字、26个英文字母或者下划线组成的字符串 -->
     <constant>
       <constant-name>pwd</constant-name>
       <onstant-value>^\w+$</onstant-value>
     </constant>
   </global>
   <formset>
     <form name="loginForm">
       <!-- 这里的用户名使用邮箱,验证时使用正则表达式进行验证 -->
       <field property="user.userId" depends="required">
         <arg0 key="user.userId" />
       </field>
       <field property="user.userPwd" depends="required,minlength,maxlength,mask">
         <!-- msg name="mask" key="errors.invalid" /-->
         <arg0 key="user.userPwd" />
         <arg1 name="minlength" key="${var:minlength}" resource="false" />
         <arg2 name="maxlength" key="${var:maxlength}" resource="false" />
         <var>
           <var-name>mask</var-name>
           <var-value>^\w+$</var-value>
         </var>
         <var>
           <var-name>minlength</var-name>
           <var-value>6</var-value>
         </var>
         <var>
           <var-name>maxlength</var-name>
           <var-value>20</var-value>
         </var>
       </field>
     </form>
   </formset>
</form-validation>

validator.xml和validator-rules.xml文件的语法不在这里说明。

时间: 2024-08-02 22:39:46

在Struts中使用Validator验证框架详解的相关文章

jQuery Validate验证框架详解

版本信息: /*! * jQuery Validation Plugin v1.14.0 * * http://jqueryvalidation.org/ * * Copyright (c) 2015 Jörn Zaefferer * Released under the MIT license */   一.导入js库 <script type="text/javascript" src="validate/jquery-1.6.2.min.js">&

jQuery Validate验证框架详解(推荐)_jquery

jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求. 一.导入js库 <script type="text/javascript" src="<%=path %>/validate/jquery-1.6.2.min.js"></script> <script type="text/javascript" src=&qu

struts中一些常用包的详解

commons-beanutils.jar Commons-Beanutils这个是jakartacommons项目中的一个子项目.这个项目开发的目的是帮助开发者动态的获取/设值JavaBean的属性,同时解决每次都要写getXXX和setXXX的麻烦. commons-digester.jar Digester本来仅仅是JakartaStruts中的一个工具,用于处理struts-config.xml配置文件.显然,将XML文件转换成相应的Java对象是一项很通用的功能,这个工具理应具有更广泛

Laravel4中的Validator验证扩展用法详解_php实例

本文实例讲述了Laravel4中的Validator验证扩展用法.分享给大家供大家参考,具体如下: 不管写接口还是写web页面,实质都是传入参数,然后进行业务逻辑,然后再输出具体内容.所以,对参数的验证是不可避免的一个环节,比如传过来的email是不是为空,是不是合法的email格式?laravel已经为phper想到简化这种逻辑的办法了.就是Validator. Validator的使用 制造一个验证器 validator使用Validator::make可以制造一个验证器.然后使用验证器判断

Laravel4中的Validator验证扩展用法详解

本文实例讲述了Laravel4中的Validator验证扩展用法.分享给大家供大家参考,具体如下: 不管写接口还是写web页面,实质都是传入参数,然后进行业务逻辑,然后再输出具体内容.所以,对参数的验证是不可避免的一个环节,比如传过来的email是不是为空,是不是合法的email格式?laravel已经为phper想到简化这种逻辑的办法了.就是Validator. Validator的使用 制造一个验证器 validator使用Validator::make可以制造一个验证器.然后使用验证器判断

Struts1.x系列教程(11):Validator验证框架高级应用

在<Struts1.x系列教程(10):Validator验证框架入门>一文中给出的例子中的name.age和email都是简单的属性,如果是嵌套的属性(也就是一个属性的数据类型是另外一个带有属性的类),可以使用圆点(.)符号来访问.如我们可以通过设置<field>元素的property属性值为"employee.salary"来验证employee属性中的salary属性. 如果要验证的索引属性,我们可以使用<field>元素的indexedLis

YII框架中搜索分页jQuery写法详解_php实例

控制层 use frontend\models\StudUser; use yii\data\Pagination; use yii\db\Query; /** * 查询 * */ public function actionSearch() { //接值 $where=Yii::$app->request->get(); //实例化query $query=new Query(); $query->from('stud_user'); //判断 if(isset($where['sex

Struts2数据输入验证教程详解_java

一.前言 1.1.什么是输入验证?为什么需要输入验证? 在上一篇文章中,我们学习了数据类型转换,我们提到了表示层数据处理的两个方法,也提到了用户输入数据需要进行类型转换才能得到我们想要的数据,那么,我们怎么确定类型转换后的数据,是我们想要的数据呢?这里有点绕.你可以这样想:一个成年男子年龄是18岁,你现在想要得到18这个数据,但是,用户输入32,经过类型转换也是对的,但是数据不是你想要的.这时候,我们要怎么办?所以输入验证在这里就有用处了. 类型转换和输入验证的关系是:类型转换是输入验证的前提,

Java开发中的23种设计模式详解(转)

Java开发中的23种设计模式详解(转) 设计模式(Design Patterns)                                   --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合