Maven依赖 或 直接下载Validation.FO包
cc.fozone.validation fo-validation 0.9.1.RELEASE
(必须) 下载配置文件 Validation.FO-CONFIGURATION
源代码地址:Basic Usage
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 */ ... }
导入其他规则文件
验证分组,name应该为全局唯一的
验证的字段,name是被验证对象的属性字段名
验证规则,name是验证器名称,message是错误后返回的消息
是验证规则时可能需要传入的参数,name是参数名,value是参数值
<?xml version=”1.0” encoding=”UTF-8”?>
<!-- 验证组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>
主要步骤:
执行验证方法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); } }
}
12:31:41,084 INFO BasicValidateConfig:44 - read validation main file , validationfo/basic/rules.fo.xml 验证失败,结果如下 {email=邮件格式不正确, password=两次密码输入不正确, starttime=开始时间不能大于结束时间, endtime=结束时间不能小于开始时间}