javaBean验证框架(8)—使用@valid实现集合验证
来源:互联网 发布:淘宝网怎么装修店铺 编辑:程序博客网 时间:2024/06/06 01:39
javaBean验证框架(8)—使用@valid实现集合验证
和对象引用一样,可以通过@valid实现递归验证,java中Collections, arrays ,Iterable的元素也都可以用@valid实现递归引用。
示例说明
先定义Employee类和Department类,部门拥有多个员工。
Employee类
import javax.validation.constraints.NotNull;import javax.validation.constraints.Pattern;public class Employee { @NotNull private String name; @Pattern(regexp = "\\d{3}-\\d{3}-\\d{4}") private String phone; public Employee(String name, String phone) { this.name = name; this.phone = phone; }}
Department类
import javax.validation.Valid;import javax.validation.constraints.NotNull;import java.util.List;public class Department { @NotNull @Valid private List<Employee> employees; @NotNull private String name; public Department(String name, List<Employee> employees) { this.employees = employees; this.name = name; }}
定义应用验证主类。
import com.dataz.entity.Department;import com.dataz.entity.Employee;import javax.validation.*;import java.text.ParseException;import java.util.Arrays;import java.util.Set;public class ValidationDemo5 { public static void main(String[] args) throws ParseException { Employee e1 = new Employee(null, "333333"); Employee e2 = new Employee("Jake", "abc"); Department dept = new Department("Admin", Arrays.asList(e1, e2)); Validator validator = createValidator(); Set<ConstraintViolation<Department>> violations = validator.validate(dept); if (violations.size() == 0) { System.out.println("No violations."); } else { System.out.printf("%s violations:%n", violations.size()); violations.stream() .forEach(ValidationDemo5::printError); } } private static void printError(ConstraintViolation<?> violation) { System.out.println(violation.getPropertyPath() + " " + violation.getMessage()); } public static Validator createValidator() { Configuration<?> config = Validation.byDefaultProvider().configure(); ValidatorFactory factory = config.buildValidatorFactory(); Validator validator = factory.getValidator(); factory.close(); return validator; }}
运行结果:
3 violations:employees[0].name 不能为nullemployees[1].phone 需要匹配正则表达式"\d{3}-\d{3}-\d{4}"employees[0].phone 需要匹配正则表达式"\d{3}-\d{3}-\d{4}"
总结
通过使用@valid可以实现递归验证,上篇中验证引用对象,本节实现验证集合中对象。
阅读全文
1 0
- javaBean验证框架(8)—使用@valid实现集合验证
- javaBean验证框架(7)—使用@valid实现对象关联验证
- javaBean验证框架(3)—验证消息
- javaBean验证框架(9)—分组验证
- javaBean验证框架(1)—概述
- javaBean验证框架(4)—自定义约束
- javabean实现注册验证
- JavaBean使用实例——注册验证
- JavaBean实现注册验证功能
- javaBean验证框架(5)—自定义类级别约束
- javaBean验证框架(6)—附加约束和组合约束
- 使用Struts2验证框架实现输入校验
- 使用SSH框架实现用户登录验证
- 使用Struts2验证框架实现输入校验
- 使用dwr框架实现登录用户名验证
- jsp—+JavaBean注册验证
- 产生彩色验证码_(javabean实现)
- 产生彩色验证码_(javabean实现)
- Win7下python2和python3同时安装并解决pip共存问题
- 全面解读txt excel word转vcard并导入手机通讯录方法
- 新浪微博自动推广专家破解版 自动点赞、评论
- 数据结构实验之二叉树八:(中序后序)求二叉树的深度
- 蒟蒻编程手册
- javaBean验证框架(8)—使用@valid实现集合验证
- Innodb的概述
- 数据库实验六---存储过程
- 磁共振指纹低秩交替乘子法重建(一)
- 入门ahk3章_基本用法和语法
- 算法分析与设计丨第十周丨LeetCode(14)——Edit distance(Hard)
- 欢迎使用CSDN-markdown编辑器
- 数据库查询的规则
- 建立数据库表格插入数据