All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.whaleal.icefrog.extra.validation.ValidationUtil Maven / Gradle / Ivy

There is a newer version: 1.1.71
Show newest version
package com.whaleal.icefrog.extra.validation;

import com.whaleal.icefrog.extra.validation.BeanValidationResult.ErrorMessage;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;


/**
 * java bean 校验工具类,此工具类基于validation-api(jakarta.validation-api)封装
 *
 * 

在实际使用中,用户需引入validation-api的实现,如:hibernate-validator

*

注意:hibernate-validator还依赖了javax.el,需自行引入。

* * @author chengqiang */ public class ValidationUtil { /** * 默认{@link Validator} 对象 */ private static final Validator validator; static { validator = Validation.buildDefaultValidatorFactory().getValidator(); } /** * 获取原生{@link Validator} 对象 * * @return {@link Validator} 对象 */ public static Validator getValidator() { return validator; } /** * 校验对象 * * @param Bean类型 * @param bean bean * @param groups 校验组 * @return {@link Set} */ public static Set> validate( T bean, Class... groups ) { return validator.validate(bean, groups); } /** * 校验bean的某一个属性 * * @param Bean类型 * @param bean bean * @param propertyName 属性名称 * @param groups 验证分组 * @return {@link Set} */ public static Set> validateProperty( T bean, String propertyName, Class... groups ) { return validator.validateProperty(bean, propertyName, groups); } /** * 校验对象 * * @param Bean类型 * @param bean bean * @param groups 校验组 * @return {@link BeanValidationResult} */ public static BeanValidationResult warpValidate( T bean, Class... groups ) { return warpBeanValidationResult(validate(bean, groups)); } /** * 校验bean的某一个属性 * * @param bean类型 * @param bean bean * @param propertyName 属性名称 * @param groups 验证分组 * @return {@link BeanValidationResult} */ public static BeanValidationResult warpValidateProperty( T bean, String propertyName, Class... groups ) { return warpBeanValidationResult(validateProperty(bean, propertyName, groups)); } /** * 包装校验结果 * * @param constraintViolations 校验结果集 * @return {@link BeanValidationResult} */ private static BeanValidationResult warpBeanValidationResult( Set> constraintViolations ) { BeanValidationResult result = new BeanValidationResult(constraintViolations.isEmpty()); for (ConstraintViolation constraintViolation : constraintViolations) { ErrorMessage errorMessage = new ErrorMessage(); errorMessage.setPropertyName(constraintViolation.getPropertyPath().toString()); errorMessage.setMessage(constraintViolation.getMessage()); errorMessage.setValue(constraintViolation.getInvalidValue()); result.addErrorMessage(errorMessage); } return result; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy