Validation.FO轻量级Java验证框架

联合创作 · 2023-09-20 13:37

Validation.FO 使用指南


框架说明



  1. 这是一个验证框架,并且是一个 独立的验证框架 ,不依赖与其他已有的框架;

  2. 可以自由的嵌入到其他框架,比如Spring、Struts等流行框架,但实质来说他是独立的,所以无所谓嵌入到哪里,如果需要在GUI桌面应用中,也是完美的;

  3. 配置简单,可自由扩展验证器,实际只要实现IValidator接口,以及在rules.fo.xml中添加相关的配置即可;

  4. 支持Spring接口

  5. 使用过程中,你会感觉好像只用了IValidateService.validate()一个方法,这会让人感觉良好


优点



  1. 不与任何对象做绑定,最大限度解耦

  2. 只要规则配置写的合理,规则可以复用到多个对象

  3. 扩展验证器很简单

  4. 以Map存储验证结果,非常简单的导出JSON,只要你愿意


相关文档



如何下载



<dependency>
<groupId>cc.fozone.validation</groupId>
<artifactId>fo-validation</artifactId>
<version>0.9.1.RELEASE</version>
</dependency>


快速开始


使用Validation.FO的步骤如下:



  1. 配置验证规则rules.fo.xml

  2. 实例化IValidateService对象

  3. 调用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


主要步骤:



  1. 创建配置读取对象IValidateConfig

  2. 创建验证服务对象IValidateService

  3. 执行验证方法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
  • 一个简单的例子
  • 浏览 27
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    编辑 分享
    举报
    评论
    图片
    表情
    推荐
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    编辑 分享
    举报