`
acen.chen
  • 浏览: 159227 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Valang Validator学习实例入门

阅读更多
Valang Validator 是较为新颖的插件,在参考胡键《Valang Validator攻略》一文以及官方指导文章后将自己将学习Valang Validator的一个完整实例写下,希望对大家有所帮助。对于Valang Validator的介绍可以参考本博客内的转帖《Valang Validator攻略》,这里介绍一个实例,不对Valang Validator本身做过多介绍。 
第一部:建立需要验证类

public class User {

    private String name, psw;

    public void setName(String s) {name = s;}

    public String getName() {return name;}

    public void setPsw(String s) {psw = s;}

    public String getPsw() { return psw;}

}

第二步:建立UserValidator类,

package org.peng.myValang2;

 

import org.springframework.validation.Errors;

import org.springmodules.validation.valang.ValangValidator;

 

public class UserValidator extends ValangValidator  {

    public void validate(Object o,Errors e){

       super.validate(o,e);//这里可以有更多内容,为了简化将直接调用验证函数验证规则在第三步中给出

    }

}

第三步:建立user.xml文件,在这个文件中定义一个

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >

<beans>

<bean id="userValidator" class="org.peng.myValang2.UserValidator">

    <property name="valang">

       <value>

           <![CDATA[

           { name : ? is not null and ? has text and length(?)<= 8 : 'Name is empty or too long.'}

           { psw : ? has text and length(?)<= 4 : 'password is null or too long'}    

           ]]>

       </value>

    </property>   

</bean>

</beans>

说明,验证规则如下:

Name:不空,长度小于等于8

Psw:不空长度小于等于4

第四部:建立测试类UserTest

import junit.framework.TestCase;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.validation.BindException;

import org.springframework.validation.FieldError;

public class UserTestextends TestCase {

    public void testValidation() {

       User user = new User();

       user.setName("peng");

       user.setPsw("340711");

       ApplicationContext ctx = new ClassPathXmlApplicationContext("/user.xml");

       UserValidator test = (UserValidator) ctx.getBean("userValidator");

       BindException errors= new BindException(user, "target");

       test.validate(user, errors);

       for (Object obj : errors.getAllErrors()){

           System.out.println(((FieldError)obj).getDefaultMessage());

       }

    }

}

最后,运行测试用例即可。

下面我们进入更高级的部分:自定义函数。自定义需要继承Valang Validator 包的AbstractFunction函数,这里我建立一个测试字符串长度函数。

函数类的定义如下:

import org.springmodules.validation.valang.functions.AbstractFunction;

import org.springmodules.validation.valang.functions.Function;

public class AnotherLengthFunction extends AbstractFunction  {

    public AnotherLengthFunction(Function[] arg0, int arg1, int arg2) {

       super(arg0, arg1, arg2);//这部分是默认设置

       definedExactNumberOfArguments(1);

    }

    @Override

    protected Object doGetResult(Object arg0) throws Exception {

        String value= getArguments()[0].getResult(arg0).toString();

        return new Integer(value.length());//这里实现你的自定义函数

    }

}

然后重新配置user.xml文件,如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >

<beans>

<bean id="userValidator" class="org.peng.myValang2.UserValidator">

  <property name="customFunctions">

    <map>

        <entry key="anotherLength">

            <value>org.peng.myValang2.AnotherLengthFunction</value>

        </entry>

    </map>

  </property>

    <property name="valang">

       <value>

           <![CDATA[

           { name : ? is not null and ? has text and anotherLength(?)<= 8 : 'Name is empty or too long.'}

           { psw : ? has text and anotherLength(?)<= 4 : password is empty or too long.'}          

           ]]>

       </value>

    </property>   

</bean>

</beans>

注意红色加粗字体部分。

测试代码不变,运行可以看到结果。这个东东刚刚看了一点,文中不足之处在所难免。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ourife/archive/2007/06/19/1657930.aspx

 

分享到:
评论

相关推荐

    Struts 1.1 Validator 校验实例

    Struts 1.1 Validator 校验实例 完全代码, 直接工程 导入 &lt;br&gt;参考 Struts in action 上面修改!!!

    struts1.x validator框架验证入门例子

    在这个入门例子中,我们将深入理解Validator框架的基本概念、配置以及如何在实际项目中应用。 一、Validator框架简介 Validator框架是Apache Struts项目的一部分,它提供了对用户输入数据进行验证的功能。通过使用...

    struts中 validator验证实例和文档

    Struts是Java Web开发中的一款经典MVC框架,它的...在学习这个实例和文档的过程中,你会了解到如何有效地利用Validator进行表单验证,以及如何处理验证失败的情况,这对于任何使用Struts开发的项目都至关重要。

    struts validator验证实例

    在这个实例中,我们将深入探讨Struts Validator的使用方法、配置以及如何自定义验证规则。 首先,Struts Validator基于JavaBean属性进行验证,它通过XML配置文件来定义验证规则。这些规则包括必填项检查、数据类型...

    spring 学习 validator例子

    如果验证失败,我们需要使用`Errors`参数来记录错误,它是一个`org.springframework.validation.Errors`实例,可以用来收集和报告验证错误。 3. **配置验证器** 在Spring配置文件中,我们需要声明我们的验证器,并...

    js validator通用函数及实例

    总的来说,“js validator通用函数及实例”这个压缩包是学习和提升JavaScript数据验证能力的好资源,通过研究其中的函数和示例,开发者不仅可以学会基本的验证方法,还能了解到如何将这些方法灵活地应用到实际项目中...

    bootstrapvalidator

    BootstrapValidator是一款广泛应用于Web开发的前端验证插件,它基于流行的Bootstrap框架构建,为开发者提供了简单易用的接口来实现表单验证功能。这个插件的主要目标是帮助开发者创建具有美观界面和强大验证功能的...

    Struts_Spring_Hibernate_Log4j_Validator实例演示.rar

    这个"Struts_Spring_Hibernate_Log4j_Validator实例演示"的压缩包应该包含了所有必要的配置文件、源代码、数据库脚本以及可能的测试用例,可以帮助学习者了解和实践这些技术的集成与协作。通过学习这个实例,开发者...

    hibernatevalidator 学习

    - `ValidatorFactory`用于创建`Validator`实例,然后使用`Validator`进行对象的验证。 - `Validation.buildDefaultValidatorFactory()`是创建默认验证工厂的便捷方法。 9. **异常处理** 验证失败时,会抛出`...

    hibernate_validator_reference 5.0.3

    对于开发者来说,本手册是学习和使用Hibernate Validator 5.0.3版本的宝贵资源。它详细介绍了如何声明和校验约束,以及如何通过自定义的方式扩展Hibernate Validator的功能。同时,它也提供了如何通过XML配置以及...

    Validator

    当需要验证对象时,通过`Validator`实例来执行校验,它会遍历对象的所有注解并执行相应的验证逻辑。 下面我们将深入探讨`Validator`的几个关键概念和使用方法: 1. **验证注解**:这些注解是定义验证规则的核心。...

    hibernate_validator 官方参考文档

    3. **验证执行**:一旦定义了约束,验证过程通常是自动的,但在某些情况下,你可能需要手动调用`Validator`实例的方法来检查对象是否符合所有定义的约束。这一步骤在处理用户输入或在服务层逻辑之前进行数据清洗时尤...

    Validator验证架框api

    3. **获取`Validator`实例**:通过`Validation.buildDefaultValidatorFactory()`创建`Validator`实例: ```java ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator =...

    validator验证原代码

    - 对于每个带有注解的字段,`Validator`会创建一个`ConstraintValidator`实例,该实例处理具体的验证逻辑。 - 如果验证失败,`ConstraintValidator`将生成一个`ConstraintViolation`,包含了失败的原因和位置信息...

    Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解

    本文实例讲述了Bootstrap简单实用的表单验证插件BootstrapValidator用法。分享给大家供大家参考,具体如下: Bootstrap是现在非常流行的一款前端框架,这篇来介绍一款基于Bootstrap的验证插件BootstrapValidator。 ...

    validator框架

    在上述代码中,我们创建了一个`User`对象并赋值,然后使用`Validation.buildDefaultValidatorFactory()`创建一个`ValidatorFactory`,再从中获取`Validator`实例。调用`validate()`方法对`user`对象进行验证,如果...

    hibernate validator jsr303

    3. 配置验证器:创建`ValidatorFactory`实例,然后使用其创建`Validator`对象。 4. 执行验证:使用`Validator`对象的`validate()`方法对对象进行验证,并处理验证结果。 **应用场景** Hibernate Validator广泛应用...

    struts中使用validator验证框架

    在本文中,我们将深入探讨如何在Struts中使用Validator框架,并通过三个逐步进阶的实例来理解其工作原理。 首先,我们来看第一个实例——Validator_Struct_01。在这个基础案例中,我们将了解如何设置基本的...

    Vue表单验证插件Vue Validator使用方法详解

    只需在Vue实例的`validators`选项中定义新的验证规则,然后在`v-validate`指令中引用即可。 总的来说,Vue Validator通过提供简洁的API和丰富的验证规则,使得在Vue应用中构建功能强大的表单验证变得容易且直观。...

Global site tag (gtag.js) - Google Analytics