java 数据验证_Java 数据验证
在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 数据验证相关推荐
- jsr 正则验证_Java数据校验(Bean Validation / JSR303)
#简介 JSR303是JAVA EE6中的子规范.用于对Java Bean的字段值进行校验,确保输入进来的数据在语义上是正确的,使验证逻辑从业务代码中脱离出来.JSR303是运行时数据验证框架,验证之 ...
- java bean 验证_Java Bean验证基础
java bean 验证 这篇文章总结了一些简单,快速的示例,这些示例说明了您想使用Java Beans Validation API(JSR 349,JSR 303)进行的最常见操作. 记住,Bea ...
- java oval 使用_java开源验证框架OVAL应用实例
java开源验证框架OVAL应用实例 对oval验证框架进行分类,并针对常用的验证规则进行总结,从而可以抽象成模型可以定义,达到定义后自动生成,减少开发人员的工作量,同时也规范化代码结构. 1. 验 ...
- java oval 入门_java开源验证框架OVAL-Go语言中文社区
@Length,@MaxLength,@MinLength maxLength,minLength只有value属性,表示和value进行比较 min和max是Length的属性 汉字算一个长度 @N ...
- java判断唯一性_java 后台验证数据唯一性
/** * 判断唯一 */ @ResponseBody @RequestMapping(params = "method=isExist2") public AjaxMsg isE ...
- java 数据聚合_Java数据聚合问题请教?
时间: 2021-01-07 02:38:41 标签: javascript Java数据聚合问题 public class Demo {public static void main(String[ ...
- java电台数据解析_Java数据解析---SAX
一.Sax解析 是从头到尾逐行逐个元素读取内容,修改较为不便,但适用于只读的大文档. Sax采用事件驱动的方式解析文档.简单点说,如同在电影院看电影一样,从头到尾看一遍就完了,不能回退(Dom可来来回 ...
- java protobuffer序列化_Java数据通讯中使用Googgle Protobuf 序列化与反序列化
概念 1.什么是protocol buffer ProtocolBuffer是用于结构化数据串行化的灵活.高效.自动的方法,有如XML,不过它更小.更快.也更简单.你可以定义自己的数据结构,然后使用代 ...
- java 固定电话_Java正则表达式验证固定电话号码符合性
下面给大家介绍Java正则表达式验证固定电话号码符合性,具体代码如下所示: /** * 验证固定电话号码的合法性 * @author jy */ package phone; import java. ...
最新文章
- node 模块化 require expores,简易实现原理。
- go 打印json 转义_Go 项目开发中 10 个最常见的错误
- [SCOI2007]降雨量
- python中ifelifelse用在什么结构_详解Python if-elif-else知识点
- Websocket--- long loop--ajax轮询
- Spring :Spring AOP 中的一些术语
- Docker学习--基本docker命令
- 微型计算机强化训练的答案,微型计算机第8章+强化训练
- PRML第三章之回归的线性模型
- python代码情话_python教你谈恋爱-之-土味情话5000条
- oracle truncate可以恢复吗,恢复truncate表
- 什么是 NullPointerException?
- steps()的学习
- esp8266最小系统似乎是可以直接用起来接在飞控上的
- FleaPHP 开发指南 - 7. 数据表关联
- 后台接口被访问到,前台控制台却提示404
- Android 8.1/GO GMS认证 (GMS认证群:738320435)
- 从零编写linux0.11 - 第三章 printk函数
- zabbix客户端安装及配置
- 3.Hadoop Hive服务
热门文章
- 基础知识—函数-默然参数
- 2021 Gartner云数据库魔力象限,阿里云、华为云成国内唯二
- MogDB/openGauss 手动部署(非OM工具)单机、主备、主备级联架构
- 推陈出新:网友解锁 source 命令新的姿势,血的教训!已准备跑路
- 云小课 | 到底什么是区块链?
- 【Python成长之路】装逼的一行代码:快速共享文件【华为云分享】
- 【响应式编程的思维艺术】 (4)从打飞机游戏理解并发与流的融合
- 野生前端的数据结构基础练习(5)——散列
- CSE强契约模式常见问题和应对策略
- ngnix 执行php 慢,【nginx】PHP有什么办法可以排查那些脚本或方法执行慢,需要优化?...