在web开发当前就会遇到一些数据有效性验证的相关代码编写。

一般的写法如:

public class User { public String username; public String password; public Integer age;}

public addUser(User user) { String username = user.getUsername(); Integer age = user.getAge(); String password = user.getPassword(); String errorMsg = ""; if(username == null || username.equals("") { errotMsg += "用户名不可为空"; } // ..........很多if,有多少个写多少个,太机械了。就一代码搬运工。}

java 后台验证相关问题:

javax.validation.Validator

org.hibernate.validator.internal.engine.ValidatorImpl

1、User添加注释public class User { @NotNull public String username; @NotNull public String password; @NotNull public Integer age;}public addUser(User user) { Iterator> iterator = validator.validate(user) StringBuilder buf = new StringBuilder(256); while (iterator.hasNext()) { buf.append(";"); ConstraintViolation> elem = iterator.next(); if (elem != null) { buf.append(elem.getPropertyPath() + elem.getMessage()); } } System.out.println(buf);}

utils 拿去用吧。public class Validators { private static class ValidatorHolder { static Validator validator = new Validators().getValidator(); } private final Logger logger = LoggerFactory.getLogger(Validators.class); private final ValidatorFactory factory; private Validators() { try { Configuration> factoryCfg = Validation.byDefaultProvider().configure(); factory = factoryCfg.buildValidatorFactory(); } catch (final ValidationException ex) { logger.error("Bean Validation provider can not be found, no validation will be performed"); throw ex; } } private Validator getValidator() { return factory.getValidator(); } /** * 校验指定bean的单个属性值 * @param bean 需要校验的bean * @param name 需要校验的属性名 * @return 需要校验的属性的错误信息 */ public static String validateProperty(Object bean, String name) { return parseConstraintViolations(ValidatorHolder.validator.validateProperty(bean, name)); } /** * 校验指定bean的全部属性 * @param bean 需要校验的bean * @return 所有错误信息 */ public static String validate(Object bean) { return parseConstraintViolations(ValidatorHolder.validator.validate(bean)); } public static String parseConstraintViolations(Set> constraintViolations) { if (CollectionUtils.isEmpty(constraintViolations)) { return null; } Iterator> iterator = constraintViolations.iterator(); ConstraintViolation first = iterator.next(); //单个校验错误 if (!iterator.hasNext()) { return first.getPropertyPath() + first.getMessage(); } // two or more elements StringBuilder buf = new StringBuilder(256); //Java default is 16, probably too small if (first != null) { buf.append(first.getPropertyPath() + first.getMessage()); } while (iterator.hasNext()) { buf.append(";"); ConstraintViolation> elem = iterator.next(); if (elem != null) { buf.append(elem.getPropertyPath() + elem.getMessage()); } } return buf.toString(); }}

java 数据验证_Java 数据验证相关推荐

  1. jsr 正则验证_Java数据校验(Bean Validation / JSR303)

    #简介 JSR303是JAVA EE6中的子规范.用于对Java Bean的字段值进行校验,确保输入进来的数据在语义上是正确的,使验证逻辑从业务代码中脱离出来.JSR303是运行时数据验证框架,验证之 ...

  2. java bean 验证_Java Bean验证基础

    java bean 验证 这篇文章总结了一些简单,快速的示例,这些示例说明了您想使用Java Beans Validation API(JSR 349,JSR 303)进行的最常见操作. 记住,Bea ...

  3. java oval 使用_java开源验证框架OVAL应用实例

    java开源验证框架OVAL应用实例 对oval验证框架进行分类,并针对常用的验证规则进行总结,从而可以抽象成模型可以定义,达到定义后自动生成,减少开发人员的工作量,同时也规范化代码结构. 1.  验 ...

  4. java oval 入门_java开源验证框架OVAL-Go语言中文社区

    @Length,@MaxLength,@MinLength maxLength,minLength只有value属性,表示和value进行比较 min和max是Length的属性 汉字算一个长度 @N ...

  5. java判断唯一性_java 后台验证数据唯一性

    /** * 判断唯一 */ @ResponseBody @RequestMapping(params = "method=isExist2") public AjaxMsg isE ...

  6. java 数据聚合_Java数据聚合问题请教?

    时间: 2021-01-07 02:38:41 标签: javascript Java数据聚合问题 public class Demo {public static void main(String[ ...

  7. java电台数据解析_Java数据解析---SAX

    一.Sax解析 是从头到尾逐行逐个元素读取内容,修改较为不便,但适用于只读的大文档. Sax采用事件驱动的方式解析文档.简单点说,如同在电影院看电影一样,从头到尾看一遍就完了,不能回退(Dom可来来回 ...

  8. java protobuffer序列化_Java数据通讯中使用Googgle Protobuf 序列化与反序列化

    概念 1.什么是protocol buffer ProtocolBuffer是用于结构化数据串行化的灵活.高效.自动的方法,有如XML,不过它更小.更快.也更简单.你可以定义自己的数据结构,然后使用代 ...

  9. java 固定电话_Java正则表达式验证固定电话号码符合性

    下面给大家介绍Java正则表达式验证固定电话号码符合性,具体代码如下所示: /** * 验证固定电话号码的合法性 * @author jy */ package phone; import java. ...

最新文章

  1. node 模块化 require expores,简易实现原理。
  2. go 打印json 转义_Go 项目开发中 10 个最常见的错误
  3. [SCOI2007]降雨量
  4. python中ifelifelse用在什么结构_详解Python if-elif-else知识点
  5. Websocket--- long loop--ajax轮询
  6. Spring :Spring AOP 中的一些术语
  7. Docker学习--基本docker命令
  8. 微型计算机强化训练的答案,微型计算机第8章+强化训练
  9. PRML第三章之回归的线性模型
  10. python代码情话_python教你谈恋爱-之-土味情话5000条
  11. oracle truncate可以恢复吗,恢复truncate表
  12. 什么是 NullPointerException?
  13. steps()的学习
  14. esp8266最小系统似乎是可以直接用起来接在飞控上的
  15. FleaPHP 开发指南 - 7. 数据表关联
  16. 后台接口被访问到,前台控制台却提示404
  17. Android 8.1/GO GMS认证 (GMS认证群:738320435)
  18. 从零编写linux0.11 - 第三章 printk函数
  19. zabbix客户端安装及配置
  20. 3.Hadoop Hive服务

热门文章

  1. 基础知识—函数-默然参数
  2. 2021 Gartner云数据库魔力象限,阿里云、华为云成国内唯二
  3. MogDB/openGauss 手动部署(非OM工具)单机、主备、主备级联架构
  4. 推陈出新:网友解锁 source 命令新的姿势,血的教训!已准备跑路
  5. 云小课 | 到底什么是区块链?
  6. 【Python成长之路】装逼的一行代码:快速共享文件【华为云分享】
  7. 【响应式编程的思维艺术】 (4)从打飞机游戏理解并发与流的融合
  8. 野生前端的数据结构基础练习(5)——散列
  9. CSE强契约模式常见问题和应对策略
  10. ngnix 执行php 慢,【nginx】PHP有什么办法可以排查那些脚本或方法执行慢,需要优化?...