`
Atomic
  • 浏览: 9501 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Commons-Validator感言

    博客分类:
  • java
阅读更多

周末感冒了重感冒都要吐血了,猫在家里面养病的时候顺手翻了一下前阵子看到的两个东西:Commons-Validator,EC,花了半天时间翻过了CV的文档,模仿他的例子做了个登陆的验证,做完后感言万分.

我还是第一次写那么麻烦的配置文件:

xml 代码
  1. <validator name="emailValidator"  
  2.     classname="net.pingsoft.atomic.SimpleValidateFormEmailWrapper"  
  3.     method="doEmailValidate" msg="{0}项不是一个正确的Email地址"  
  4.     methodParams="java.lang.Object,org.apache.commons.validator.Field" />  

开始觉得SS1时文档里的语录:"严重BScv的配置文件只顾XML解析器方便不顾程序员方便的写法"严重同意!CV的结构就是这个配置文件的展示,层次结构比较郁闷,如上面配置一个validator就杀去那么多行~幸好有现成的可以用不然第一次写的人肯定要吐血死去.下面是在荒郊野岭中使用纯servlet和jodd这个小东西做的控制器:

java 代码
  1. Customer customer = new Customer();   
  2. // 使用Jodd BeanUtil装载页面bean   
  3. BeanUtil.load(customer, request);   
  4.   
  5. ValidatorResources resources = new ValidatorResources(getClass().getClassLoader().getResourceAsStream(   
  6.         "VCustomer.xml"));   
  7. Validator validator = new Validator(resources, "simpleValidateForm");   
  8. validator.setParameter(Validator.BEAN_PARAM, customer);   
  9. // 进行Validate   
  10. ValidatorResults results = validator.validate();   
  11.   
  12. List errors = new ArrayList();   
  13.   
  14. for (Object property : results.getPropertyNames()) {   
  15.     // 利用这个名字取出各项被v后的结果r,这个r包含了每个验证器对这项的验证结果,如果是有两个校验器叠加到这项上,那么如果第一个   
  16.     // 校验器失败了,那么后面的就不会执行了,返回null而不是false   
  17.     ValidatorResult r = results.getValidatorResult(property.toString());   
  18.   
  19.     // 将Field中的key取出来   
  20.     Arg[] args = r.getField().getArgs("");   
  21.     Object[] errorArg = new Object[args.length];   
  22.     for (int i = 0; i < args.length; i++) {   
  23.         errorArg[i] = args[i].getKey();   
  24.     }   
  25.   
  26.     for (Object o : r.getField().getDependencyList()) {   
  27.         if (!r.isValid((String) o)) {   
  28.             ValidatorAction action = resources.getValidatorAction((String) o);   
  29.             String errorMsg = action.getMsg();   
  30.             // 通过MessageFormat把错误信息和错误参数列和在一起   
  31.             String error = MessageFormat.format(errorMsg, errorArg);   
  32.             errors.add(error);   
  33.         }   
  34.     }   
  35. }  

MessageFormat用起来真是麻烦,不过貌似比较强大,ResourceBundle挺无聊的说...

今天忽然就想写些东西不过想了半天不知道写到那里,忽然想起javaeye哈

分享到:
评论

相关推荐

    表单验证控件commons-validator-1.3.1

    表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-...

    commons-validator-1.3.0.jar

    commons-validator-1.3.0.jar commons-validator-1.3.0.jar

    Commons-Validator经典介绍

    Apache Commons-Validator 是一个强大的Java验证框架,常用于处理Web应用程序中的数据验证。它可以从Apache Commons项目中获取,是Struts 1.x框架的一部分,但也可以独立使用在其他任何需要验证逻辑的应用中。该框架...

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

    6. **源码分析(Source Code)**:提供的`commons-validator-1.3.1-src.gz`文件包含源代码,这使得开发者可以深入理解内部工作原理,进行定制化开发,或者排查可能出现的问题。 7. **API文档**:虽然没有直接给出,...

    commons-validator.jar

    commons-validator.jar

    commons-validator-1.3.1.jar

    commons-validator-1.3.1.jar

    apache commons 常用jar包 commons-validator commons-transaction commons-lang等

    jar包大小:135KB commons-validator-1.3.1.jar jar包大小:93KB commons-transaction-1.2.jar jar包大小:141KB commons-scxml-0.6.jar jar包大小:254KB commons-primitives-1.0.jar jar包大小:60KB commons-pool-1.3....

    commons-validator-1.3.1.zip

    5. **JAR文件**:压缩包中通常会包含编译后的`commons-validator-1.3.1.jar`,这是可以直接在项目中使用的二进制库,包含了所有验证功能的实现。 6. **依赖库**:可能还包括`lib`目录,其中包含Validator运行所需的...

    commons-validator

    "commons-validator"是Apache Commons项目中的一个组件,主要负责数据验证功能。Apache Commons是一个由许多独立但又相互关联的小型库组成的项目,旨在提供Java开发人员常用的实用工具和类。在给定的压缩包文件中,...

    commons-validator.doc 用法介绍

    使用Commons Validator首先需要在项目中引入相关的jar包,包括Struts 1.3.8的核心包以及commons-validator.jar。这些库包含了Validator框架的类和方法,使得你可以利用它们来实现验证功能。 **配置验证** 1. 创建`...

    oro-2.0.8.jar commons-validator.jar

    Oro-2.0.8.jar 和 Commons-Validator.jar 是两个在Java开发中常见的库文件,它们主要用于处理字符串处理和数据验证。以下是对这两个组件的详细解释: 1. **Oro-2.0.8.jar**: 这是Apache的Oro项目的一部分,该项目...

    开发工具 commons-fileupload-1.3.2

    开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2...

    commons-validator-1.2.0.jar

    它使用了一个xml文件来定义针对用户输入的数据验证功能,整个验证体系提供了很强的扩展性,使得开发者可以开发自己的验证函数加入到这个验证体系中来。

    rh-maven33-apache-commons-validator-1.4.0-8.13.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    commons-validator:Apache Commons Validator

    Apache Commons Validator Apache Commons Validator提供了客户端验证和服务器端数据... &lt; groupId&gt;commons-validator &lt; artifactId&gt;commons-validator &lt; version&gt;1.7 贡献 我们通过GitHub接受拉取请求。 是贡献者

    commons-logging.jar

    commons-logging-1.0-javadoc.jar, commons-logging-1.0.1-javadoc.jar, commons-logging-1.0.1.jar, commons-logging-1.0.2-javadoc.jar, commons-logging-1.0.2.jar, commons-logging-1.0.3-javadoc.jar, commons-...

    commons-collections.jar

    commons-collections-20040616.jar, commons-collections-3.2-osgi.jar, commons-collections-3.2-sources.jar, commons-collections-3.2.1.jar, commons-collections-3.2.2-javadoc.jar, commons-collections-3.2.2...

    commons-net-3.8.0-API文档-中文版.zip

    赠送jar包:commons-net-3.8.0.jar; 赠送原API文档:commons-net-3.8.0-javadoc.jar; 赠送源代码:commons-net-3.8.0-sources.jar; 赠送Maven依赖信息文件:commons-net-3.8.0.pom; 包含翻译后的API文档:...

    java连接池有关jar:commons-pool-1.2.jar+commons-pool-1.3.jar+commons-pool.jar

    commons-pool-1.3.jar+commons-pool.jar;java连接池jar包java连接池;java连接池jar;commons-pool-1.2.jar;commons-pool-1.3.jar+commons-pool.jar;java连接池jar包java连接池;java连接池jar;commons-pool-1.2.jar;...

Global site tag (gtag.js) - Google Analytics