再说Apache Commons Validator的不足

Java参数校验库实测:Apache Commons Validator与ValidX全面对比 参数校验是Java后端开发中最基础也最容易被低估的一环。面对从字符串格式到复杂业务规则的校验需求,开发者常常在“传统工具类”与“现代校验框架”之间难以取舍。本文从参数校验的本质出发,剖析Apache Commons Validator的函数式工具定位与ValidX注解驱动引擎的设计差异,并通过JMH基准实测单字段与DTO整体校验性能,揭示两者在错误收集、条件分组、扩展机制等方面的真实差距。无论你是老项目需要轻量修补,还是Spring Boot 3新工程追求声明式可维护性,理解这两类方案的工作原理、性能特征与 阅读详情

上次提到Commons Validator在校验Email地址的时候客户端逻辑和服务器端逻辑不一致。最近发现在Date校验以及Indexed Properties校验方面也有同样的问题。

Validator的服务器端Java代码可以支持完整的日期时间格式,例如(yyyy-MM-dd HH:mm:ss.S,由DateFormat类提供支持),但是在客户端的JavaScript代码里面只能支持日期本身,时间不被支持,例如(yyyy-MM-dd),观察客户端代码可以发现。

对于Indexed Properties(索引属性或曰集合属性),Validator可以在服务器端支持,但是在客户端同样无法支持。

这样的现状让我感到很困惑,这意味着Validator的实用性大打折扣--尽管它已经非常优秀。对一个B/S结构的软件来说,功能的多寡不是问题,而逻辑(B/S两端)不一致却是一个不能回避的原则性问题。尽管我们可以说,“客户端校验的不足,可以用服务器端的校验来补足”,但是这不是折衷,而是对软件设计的破坏。

犹豫着,要不要舍弃Commons Validator,似乎Apache本身,也不打算再对它进行更新,目前的最新版本是V1.3.1,但已经是1年以前的东西了。似乎它唯一的优势已经仅仅是在与Struts无缝集成、共享ApplicationResources以及其它资源方面了。如果不考虑多语言支持的话,用Commons Validator还有价值吗?

其实,针对以上的不足以及其它一些本文未提及的不足,许多热心的技术人员已经提供了比较可靠的解决方案,但是我不知道为什么Apache至今不采纳那些方案。

Commons-Validator经典介绍 Commons-Validator经典介绍,如果你还不熟悉apache的Commons-Validator或者struts1.x里面的验证框架,看了保证对你有用处! 立即下载

相关推荐

commons-validator.doc 用法介绍

commons-validator.doc 用法介绍 commons-validator.doc 用法介绍

Apache Common-validator验证框架

Commons-Validator(一) Commons -Validator包用来把验证规则程序提取出来,以供重复使用。这个包可以使用在Struts中,也可以独立的应用在任何其它的应用中。用户可以通过 java类的方式自定义验证方法,也可以在配置文件中通过正则表达式配置验证方法。它不但支持服务器端的验证,客户端的验证也支持,具体需要使用tag把 相应的js方法写入相应的页面中。一、综述: 整...

iteye_14356的博客 820

commons-validator:Apache Commons Validator

Apache Commons Validator Apache Commons Validator提供了客户端验证和服务器端数据验证的构建块。 它可以单独使用,也可以与Struts之类的框架一起使用。 文献资料 可以在上找到更多信息。 可以浏览 。 与Apache Commons Validator的使用有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者,您可以从中央Maven存储库中提取它: < dependency> < groupId>commons-validator</ groupId> < artifactId>commons-validator</ artifactId> < version>1.7</ version> </ dependency> 贡献 我们通过GitHub接受拉取请求。 是贡献者

通用验证系统

1. 前言本文较详尽地介绍了jakarta开源项目的子项目之一commons-validator(通用验证系统),版本是1.0.2。它使用了一个xml文件来定义针对用户输入的数据验证功能,整个验证体系提供了很强的扩展性,使得开发者可以开发自己的验证函数加入到这个验证体系中来。它对web应用程序提供了客户端javascript验证和服务端验证的两种选择,但是它只是一个验证体系,有些东西还需要自己开发

qiqijava的专栏 1617

从TL431光耦到集成隔离器:3种反激电源反馈方案全对比,你的项目到底该选哪个?

本文深入对比了反激电源设计中TL431光耦、集成隔离器和原边反馈三种主流反馈方案的优缺点,帮助开发者在电源设计中选择最适合的方案。从精度、成本、隔离等级等多维度分析,为反激式(Flyback)拓扑的应用提供实用选型指南。

weixin_30536513的博客 399

手把手教你用Logisim搭建5级流水MIPS CPU(附华中科技计组实验避坑指南)

本文详细介绍了如何使用Logisim从零构建5级流水MIPS CPU,特别针对华中科技大学计算机组成原理实验提供实用指南。内容涵盖单周期CPU过渡、流水线寄存器设计、数据冒险处理等核心环节,并附有实验避坑建议和性能优化技巧,帮助学生高效完成这一挑战性项目。

weixin_42532938的博客 372

Apache Commons

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。项目地址http://commons.apache.org/ Commons BeanUtils 提供对Java反射和自省API的包装。 依赖包:Commons Codec、Commons Logging Commons Codec 是编码和解码组件,提供常用的编码和解码

tengmuxin的专栏 1132

STM32CUBEMX+STM32H750VB+LWIP+LAN8720A+FREERTOS TCP服务器、UDP数据接收发送、网线热插拔、IAR-8.32开发

STM32CUBEMX+STM32H750VB+LWIP+LAN8720A+FREERTOS TCP服务器、UDP数据接收发送、网线热插拔、IAR-8.32开发STM32H750VB使用STM32CUBEMX生成工程IAR+J-LINK调试准备工作CUBEMX生成的代码问题所在如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章U

qq_37433166的博客 5345

Commons-Validator

示例 public static void main(String[] args) { // null 或 空断言 System.out.println(GenericValidator.isBlankOrNull("")); //true System.out.println(GenericValidator.isBlankOrNull(null)); //true System.out.println(Generic

哈 1361

【AI大模型】角色设定:给模型定身份的高效使用方法

摘要: AI大模型角色设定(RolePrompting)是提示词工程的核心优化技巧,通过赋予模型特定职业、领域和风格约束,显著提升输出专业度与适配性。文章系统拆解了角色设定的原理、万能公式(领域+身份+技能+风格+场景)、三级分层写法(基础/进阶/专家),并提供10类高频场景的模板。通过无角色与有角色输出的对比实验(Python代码量化验证),证明角色设定可使模型综合得分提升35%以上,尤其优化场景适配度与风格统一性。该技巧作为高阶提示词(如CoT、Few-Shot)的前置模块,能以零成本实现AI输出的专业

unber的博客 44

YOLOv8+SAM强强联合:用分割“喂“检测,复杂背景下作物AP从72%干到77.7%,杂草误检降60%

目标与背景高度相似:如农业(作物vs杂草)、工业(零件vs台面)、医学(病灶vs正常组织);遮挡严重的场景:如密集人群(人被遮挡)、森林(树木被枝叶遮挡);小目标密集场景:如无人机航拍(远处小目标易混背景)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 793

java验证工具_[原创]JAVA通用属性验证工具

在程序开发中,少不了属性的效验。最常用的应该是 hibernate 的 validator 或 apache 的 commons-validator 。这两种框架各有优缺点,首先是 Hibernate的validator,它臃肿了,依赖很多其他jar包。在不使用hibernate框架时使用它还是很不方便的。其次是apache的commons-validator,虽然很灵活,但是配置麻烦,好像没有基...

weixin_31544603的博客 459

少儿学编程系列--使用递归画出龙形曲线DragonCurve

龙形曲线(Dragon Curve) 龙形曲线(Dragon Curve)又叫分形龙,是一种自相似碎形曲线的统称,因形似龙的蜿蜒盘曲而得名 使用黄金比例画龙形曲线 根据黄金比例画一条龙曲线。每次递归,第一步向左转32.89度,移动0.74倍原距离;第二个递归步骤向右转46.99度,移动原来距离的0.55倍。请查看这个网页(https://larryriddle.agnesscott.org/ifs/heighway/goldenDragon.htm)了解关于龙形黄线数学的细节 龙形曲线效果 .

penriver的博客 2298

Apache Commons Validator

Add an onsubmit attribute to your h:form tag that calls the JavaScript validation function generated by s:validatorScript. Add Commons validators to JSF input components with s:commonsValidator and, optionally, s:validatorVar. Add an s:validatorScript tag

爱代码 爱生活 3141

里海NX二次开发3000例-专栏目录

UDO(User Defined Object)是“用户自定义对象”。应用非常广,可以用UDO创建自定义特征,也可以对NX原有的特征添加一些特殊信息,这些信息会保存在部件中,以后可以查询。还可以实时追踪NX对象,例如做3D包容盒线框自动追踪实体,做2D矩形框自动追踪图纸尺寸值,这些在下面的例子都有介绍。读者可以自己编译下面的例子,体会理解UDO的用法。------里海 20230512序号内容​链接01使用UDO在所有实体上设置更新回调​链接02使用UDO生成跟踪实体的线框​链接03删除UDO​链接。

王牌飞行员_里海的博客 7716

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【亲测免费】 Apache Commons Validator 使用教程

Apache Commons Validator 使用教程 1、项目介绍 Apache Commons Validator 是 Apache Commons 项目中的一个组件,旨在为开发人员提供一个通用的数据验证框架。它可以帮助开发人员简化服务器端程序的验证代码,实现和减少对通用验证逻辑的代码实现工作。Validator 包提供基于 XML 文件的 JavaBean 验证,并包含独立的验证器和实用...

gitblog_00284的博客 616

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

commons-validator

本文介绍了Apache Commons Validator数据验证框架,这是一个功能丰富的Java开源验证工具。文章提供了Maven依赖配置,展示了基本使用示例,包括数据类型验证、范围检查和日期格式化等。重点介绍了两个核心工具类:GenericValidator提供通用验证方法(如空值检查、类型判断、范围验证等),GenericTypeValidator负责类型转换(字符串转Byte/Date等)。此外还列出了IntegerValidator和LongValidator的数值验证功能。该框架为Java开发者

zp的博客 919

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

回顾过往,让让我们一起考古Apache Commons Validator

一、概述   在基于B/S架构实现的Web应用系统开发实现中,为了能够获得正确和有效的用户表单请求的参数值,在进行业务处理之前都需要对接收的表单数据进行检查和验证。有时编程花的时间最多的就是考虑各种异常情况带来的问题,反而正常的功能很快就可以开发完,参数非法校验是一个普通不能再普通的需求了,如果不对请求参数校验,假如参数随便传递,那可能会带来一系列问题。   为了简化开发人员的服务器端程序验证的代码,实现和减少对通用验证逻辑的代码实现工作,在Commons组件集中还提供有一个Commons-Validat.

独泪了无痕 1554

从单值到对象级校验:Apache Commons Validator与ValidX的JMH性能横评

数据校验是后端接口开发中绕不开的基础环节,尤其在参数入口繁多、嵌套对象与集合元素并存的业务场景下,手写 if/else 校验逻辑往往导致代码膨胀、规则模糊且难以维护。传统工具类如 Apache Commons Validator 提供高可靠的单值格式校验,性能出色;而 ValidX 这类规则引擎则把校验抽象为声明式规则,支持对象图遍历、错误消息聚合及动态调参,显著降低整链路的组织成本。两者的本质差异并非单纯的执行速度,而是“工具箱”与“规则框架”的定位区别。在 JMH 实测中,单字段校验时 Commons

weixin_34060299的博客 362

Java参数校验库选型:Apache Commons Validator与ValidX全面对比

在Java后端开发中,参数校验是保障数据正确性的基础环节,其实现方式直接影响代码可维护性与系统性能。传统工具集如Apache Commons Validator以预置正则与静态工具方法见长,而新兴框架ValidX则采用函数式链式调用,强调规则编排与结构化错误收集。理解两者在设计哲学上的差异——前者专注单点判定,后者擅长流程组合——是技术选型的关键。通过JMH基准测试可量化其性能差距:单字段场景Commons Validator略优,而在多字段、嵌套容器及批量错误收集场景中,ValidX凭借短路机制与惰性求值

weixin_34242331的博客 312

开源项目实战指南(六):探索Apache Commons Validator

在前几篇文章中,我们介绍了Apache Commons Lang、Commons IO、Commons Collections、Commons Math和Commons Configuration的使用方法。本篇文章将深入探讨Apache Commons Validator,这是一个专门用于数据验证的库。通过Commons Validator,开发者可以轻松地对输入数据进行各种常见的验证,如电子邮件、URL、日期等。

阿里渣渣java研发组-群主 1891

Java参数校验库选型:Apache Commons Validator与ValidX深度对比

参数校验是Java后端开发中高频且基础的任务,从邮箱格式判断到复杂对象图的多字段合法性检查,都离不开一套可靠的校验方案。传统命令式工具如Apache Commons Validator提供轻量级的单值校验能力,而注解驱动的ValidX则通过声明式规则大幅简化嵌套对象与集合的校验逻辑。理解两者的设计原理与适用边界,能够帮助开发者做出更合理的技术选型。在性能层面,简单字符串校验场景下Commons Validator更快;而在复杂对象图批处理中,ValidX凭借元数据缓存与统一编排反而具备优势。实际项目中可按场

weixin_34162228的博客 383

Java表单校验框架选型:Apache Commons Validator与ValidX性能与API对比

在Java后端开发中,表单校验是保障数据完整性的基础环节,其核心诉求在于校验规则的声明式表达与高效执行。传统方案常基于XML配置与反射机制实现通用校验框架,能够解耦业务代码,但存在启动开销大、调用链路长的固有短板。现代开发则更青睐链式API与注解驱动,通过预编译正则和无反射设计显著提升运行时性能。在实际工程中,从遗留系统改造到微服务网关的轻量级校验,不同场景对依赖体积、吞吐量和维护成本的要求差异巨大。本文围绕Apache Commons Validator与ValidX两个代表性库,从设计哲学、功能覆盖、实

weixin_34245082的博客 354
上一篇: Struts Validator关于Email Address的校验问题
下一篇: Nokia N1600关机闹钟故障的变通解决
梦想家起飞
博客等级 码龄24年 24粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值