当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

Validation.FO

轻量级Java验证框架
授权协议 MIT
开发语言 Java
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 国产
投 递 者 解浩渺
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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
  • 一个简单的例子
  •  相关资料
    • 问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha

    • Jenkins Pipeline插件有一个称为“轻量级签出”的功能,其中主服务器仅从repo中提取Jenkinsfile,而不是整个repo。配置屏幕中有一个相应的复选框。我想在多分支管道中进行轻量级签出,但我在多分支配置屏幕中没有看到复选框。有什么想法如何实现这一点吗?我注意到一些关闭的问题表明此功能可用,但我无法找到任何有关如何实现它的细节。 相关资料: https://issues.jenk

    • 问题内容: 我曾经遇到过Java的验证框架,您在其中编写了一种方法来保护数据类型的完整性以及对该数据类型的任何CRUD操作的自动调用此方法。 有谁知道这个框架是什么?我只是想避免对附加到数据类型的每个CRUD方法进行重复验证。 问题答案: 这是Java验证库/框架的巨大列表-http: //java-source.net/open- source/validation

    • 本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,

    • 本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻

    • 问题内容: 题 我正在寻找Java内存对象缓存API。有什么建议吗?您过去使用过什么解决方案? 当前 现在,我只是在使用地图: 要求 我需要扩展缓存以包括以下基本功能: 最大尺寸 生存时间 但是,我不需要更复杂的功能,例如: 来自多个进程的访问(缓存服务器) 持久性(到磁盘) 意见建议 内存中缓存: Guava CacheBuilder-活动开发。请参阅此演示文稿。 LRUMap-通过API配置。