Validation.FO轻量级Java验证框架
Validation.FO 使用指南
框架说明
- 这是一个验证框架,并且是一个 独立的验证框架 ,不依赖与其他已有的框架;
- 可以自由的嵌入到其他框架,比如Spring、Struts等流行框架,但实质来说他是独立的,所以无所谓嵌入到哪里,如果需要在GUI桌面应用中,也是完美的;
- 配置简单,可自由扩展验证器,实际只要实现IValidator接口,以及在rules.fo.xml中添加相关的配置即可;
- 支持Spring接口
- 使用过程中,你会感觉好像只用了IValidateService.validate()一个方法,这会让人感觉良好
优点
- 不与任何对象做绑定,最大限度解耦
- 只要规则配置写的合理,规则可以复用到多个对象
- 扩展验证器很简单
- 以Map存储验证结果,非常简单的导出JSON,只要你愿意
相关文档
- API : https://github.com/41zone/Validation.FO/wiki
- 开源社区 : GITHUB,GITOSC
- DEMO案例源代码,Validation.FO Demo
如何下载
- Maven依赖 或 直接下载Validation.FO包
<dependency> <groupId>cc.fozone.validation</groupId> <artifactId>fo-validation</artifactId> <version>0.9.1.RELEASE</version> </dependency>
- (必须) 下载配置文件 Validation.FO-CONFIGURATION
快速开始
使用Validation.FO的步骤如下:
- 配置验证规则rules.fo.xml
- 实例化IValidateService对象
- 调用IValidateService.validate方法
基本的使用方法
源代码地址:Basic Usage
1. 创建POJO对象User.java
package validationfo.basic; import java.sql.Timestamp; /** * 用户对象 * @author Jimmy Song * */ public class User { // 用户名 private String username; // 密码 private String password; // 再次输入密码 private String passwordOne; // 邮箱 private String email; // 开始与结束时间 private Timestamp starttime; private Timestamp endtime; /** * Setter & Getter */ ... }
2. 配置验证规则rules.fo.xml
- <include file=""/>
导入其他规则文件 - <group name=""></group>
验证分组,name应该为全局唯一的 - <field name=""></field>
验证的字段,name是被验证对象的属性字段名 - <rule name="" message=""></rule>
验证规则,name是验证器名称,message是错误后返回的消息 - <param name="" value=""></param>
是验证规则时可能需要传入的参数,name是参数名,value是参数值
<?xml version="1.0" encoding="UTF-8"?> <fozone-validation> <!-- include 标签导入其他配置 --> <include file="validationinfo/basic/another-rules.fo.xml"/> <!-- 验证组ID,全局唯一 --> <group name="user.validate"> <!-- 验证字段 --> <field name="email"> <!-- 规则列表 --> <rule name="required" message="邮件必须填写"/> <rule name="between" message="邮件长度应该3-100之间"> <param name="min" value="3"/> <param name="max" value="100"/> </rule> <rule name="match" message="邮件格式不正确"> <param name="regex" value="^[A-Za-z]+[\.\-_A-Za-z0-9]*@[A-Za-z0-9]+[\.\-_A-Za-z0-9]*$"/> </rule> </field> ... </group> </fozone-validation>
3. 实例化测试BasicTest.java
主要步骤:
- 创建配置读取对象IValidateConfig
- 创建验证服务对象IValidateService
- 执行验证方法IValidateService.validate(object, groupId)
package validationfo.basic; ... /** * 最基本的测试 * @author Jimmy Song * */ public class BasicTest { public static void main(String[] args) { /** * Validation.FO的配置资源 */ // 验证器配置,系统默认配置 String validatorsXML = "validationfo/basic/validators.fo.xml"; // 规则配置 String rulesXML = "validationfo/basic/rules.fo.xml"; /** * 实例化配置对象 */ IValidateConfig config =new BasicValidateConfig(validatorsXML, rulesXML); /** * 实例化验证服务层 */ IValidateService validateService = new BasicValidateService(config); // 实例化用户 User user = createUser(); /** * 执行验证 */ Map<String,String> map = validateService.validate(user, "user.validate"); // 输出结果 if(map == null || map.size() == 0) { System.out.println("验证成功"); } else { System.out.println("验证失败,结果如下"); System.out.println(map); } } }
4. 结果输出
12:31:41,084 INFO BasicValidateConfig:44 - read validation main file , validationfo/basic/rules.fo.xml 验证失败,结果如下 {email=邮件格式不正确, password=两次密码输入不正确, starttime=开始时间不能大于结束时间, endtime=结束时间不能小于开始时间}
更多内容请点击:http://my.oschina.net/41zone/blog/324657
目录列表:
Validation.FO 使用指南 框架说明 优点 如何下载 快速开始 使用Validation.FO的步骤如下: 基本的使用方法 1. 创建POJO对象 User.java 2. 配置验证规则 rules.fo.xml 3. 实例化测试 BasicTest.java 4. 结果输出 如何在Spring中使用 1. 配置Spring配置 context.xml 2. 如何通过Spring进行验证,SpringTest.java 3. 执行结果 Validator验证器与规则 默认验证规则 required - 必填字段 match - 正则匹配 between - 判断字符串或数组非空长度是否介于两者之间,min <= length <= max min - 判断字符串或数组非空长度是否大于等于最小长度,length >= min max - 判断字符串或数组非空长度是否小于等于最大长度,length <= max equals - 判断字段是否与指定的字段值是否相同 timestampLessEqual - 时间戳是否小于等于指定的目标时间字段 timestampCreaterEqual - 时间戳是否大于等于指定的目标时间字段 spring - 通过Spring调用其他对象的指定方法进行判断 高级部分:如何自定义验证器 IValidator 一个简单的例子
评论