在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<ConstraintViolation<Object>> 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<ConstraintViolation<Object>> constraintViolations) { if (CollectionUtils.isEmpty(constraintViolations)) { return null; } Iterator<ConstraintViolation<Object>> iterator = constraintViolations.iterator(); ConstraintViolation<Object> 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代码实现的数据校验类,包括奇偶校验和CRC校验等
java数据校验工具类,校验日期、邮箱、数字、电话号码等数据
在Java开发中,处理Excel数据是一项常见的任务,尤其是在数据导入导出、...这个过程涉及到文件I/O、XML处理、数据验证、数据库操作等多个核心Java技术,对于提升Java开发者在实际项目中的综合能力具有很高的实践价值。
在Excel中,可以通过设置数据验证规则实现。在Java中,我们可以使用Apache POI的`DataValidationHelper`和`DataValidationConstraint`类来创建和应用这些规则。 例如,检查手机号码的代码: ```java ...
Java 数据完整性校验是保障软件安全的重要环节,尤其是在下载或传输文件时,确保数据未被篡改至关重要。这里我们将深入探讨 Java 中实现数据完整性验证的方法,主要关注MD5(Message-Digest Algorithm 5)哈希算法的...
例如,`DataScopeAspect` 类可能就是实现这一功能的切面类,它会在数据查询之前进行权限校验。 3. 数据权限管理: 数据权限管理是数据隔离的核心,通常包括角色分配、权限设定和权限检查。`DataScope` 类可能包含...
在IT行业中,数据导入导出是一项基础且重要的任务,特别是在Java开发中。本文将深入探讨如何使用Java进行数据的导入和导出,包括Excel、XML和TXT等常见格式的处理。 首先,我们要理解数据导入导出的核心目的:将...
另外Hibernate也提供了类似功能的基于java注解的校验,我们产品也需要这种功能,无奈用的是JavaEE5,因此我自己写了一个简单的基于注解的校验框架,可以校验一些简单的数据类型,满足基本的需求。源码和UT都在里面。
### Java CRC校验详解 #### 一、CRC校验简介 循环冗余校验(Cyclic Redundancy Check,简称CRC)是一种数据校验技术,主要用于检测或纠正数据传输过程中的错误。CRC通过一个预定义的多项式进行计算,生成一个固定...
- **数据完整性检查**:在数据库操作、数据备份恢复等场景中,校验和可用于验证数据的完整性。 - **软件分发**:在发布软件时提供校验和,帮助用户验证下载文件的真实性和完整性。 通过以上分析,我们可以看到这个...
2. **服务端验证**:在服务器端进行数据校验,确保数据安全,防止客户端篡改。 #### 四、Java表单验证技术 在Java中,常用的表单验证技术有: - **使用JavaBean验证** - **Spring框架中的数据绑定和验证** - **...
在Java编程环境中实现CRC校验对于确保数据的完整性和一致性至关重要,尤其是在Android开发中,它能帮助开发者检测和防止数据传输过程中的错误。 CRC校验的基本原理是通过附加一个短的校验码到数据块的末尾,这个...
`java验证文件真实格式和编码格式工具类` 提供的功能对于处理不同来源的文件至关重要,尤其是在处理用户上传的文件或跨平台数据交换时。通过`VerifyFileType.java` 和 `VerifyFileEncoder.java`,开发者可以确保正确...
5. **统一的导入与校验**: 在描述中提到的"统一封装"意味着创建一个通用的导入机制,这个机制可以接受不同的Excel模板,并根据预定义的校验规则进行数据验证。这样做可以提高代码的复用性,减少开发工作量,使得新...
3. **设置串口参数**:设置波特率、数据位、停止位和校验位。例如,设置9600波特的波特率: ```java serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_...
Java数据挖掘是一个重要的领域,它将编程语言的力量与数据分析的深度结合在一起,为开发者提供了从海量数据中发现有价值信息的能力。在这个案例中,我们将探讨如何使用Java进行数据挖掘,以及这个过程中涉及的关键...
在Java编程中,数据验证是确保输入数据的准确性和安全性的关键步骤,特别是在处理用户提交的数据时。这个压缩包文件“Java源码对添加数据进行数据验证.rar”可能包含了一个或多个示例,用于演示如何在Java应用中实现...
- **数据一致性验证**:在数据同步后,进行一致性校验,确保数据在各个数据库中的一致性。 - **性能优化**:减少同步延迟,避免过度负载,可能需要对同步频率、批量更新和缓存策略进行调整。 综上所述,Java实现多...
Java数据加密是一个重要的安全领域,它涉及到保护敏感信息、防止数据泄露和确保网络通信的隐私。在这个主题中,我们将深入探讨三个关键知识点:Java中的类加载器(ClassLoader)在加密解密中的应用、常见的加密算法...
学习“JAVA文本框验证大全”,不仅可以加深对Java Swing组件的理解,还能提升你在用户交互设计和数据验证方面的技能。同时,了解不同的验证策略和库可以帮助你更灵活地应对各种场景,为用户提供更好的输入体验。