From ee41a620f008b536320b8abc50fcb1ee4ff308d6 Mon Sep 17 00:00:00 2001 From: johnniang <1340692778@qq.com> Date: Wed, 20 Feb 2019 23:21:31 +0800 Subject: [PATCH] Add ValidationUtils --- .../cc/ryanc/halo/utils/ValidationUtils.java | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/main/java/cc/ryanc/halo/utils/ValidationUtils.java diff --git a/src/main/java/cc/ryanc/halo/utils/ValidationUtils.java b/src/main/java/cc/ryanc/halo/utils/ValidationUtils.java new file mode 100644 index 000000000..5da5a9e2d --- /dev/null +++ b/src/main/java/cc/ryanc/halo/utils/ValidationUtils.java @@ -0,0 +1,93 @@ +package cc.ryanc.halo.utils; + +import org.springframework.util.CollectionUtils; +import org.springframework.validation.FieldError; + +import javax.validation.ConstraintViolation; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 有关字段验证的工具类 + * + * @author johnniang + */ +public class ValidationUtils { + + private ValidationUtils() { + } + + /** + * 将字段验证错误转换为标准的map型,key:value = field:message + * + * @param constraintViolations constraint violations(contain error information) + * @return 如果返回null则未出现错误 + */ + public static Map mapWithValidError(Set> constraintViolations) { + Map errMap = null; + if (!CollectionUtils.isEmpty(constraintViolations)) { + // if not empty + errMap = new HashMap<>(4); + for (ConstraintViolation constraintViolation : constraintViolations) { + errMap.put(constraintViolation.getPropertyPath().toString(), constraintViolation.getMessage()); + } + } + return errMap; + } + + public static String stringWithValidError(Set> violations, boolean allError) { + StringBuilder errString = new StringBuilder(); + if (!CollectionUtils.isEmpty(violations)) { + for (ConstraintViolation violation : violations) { + if (errString.length() > 0) { + errString.append(","); + } + errString.append(violation.getMessage()); + if (!allError && errString.length() > 0) { + return errString.toString(); + } + } + } + return errString.toString(); + } + + /** + * 将字段验证错误转换为标准的map型,key:value = field:message + * + * @param fieldErrors 字段错误组 + * @return 如果返回null,则表示未出现错误 + */ + public static Map mapWithFieldError(List fieldErrors) { + Map errMap = null; + + if (!CollectionUtils.isEmpty(fieldErrors)) { + // 如果不为空 + errMap = new HashMap<>(4); + for (FieldError fieldError : fieldErrors) { + errMap.put(fieldError.getField(), fieldError.getDefaultMessage()); + } + } + + return errMap; + } + + public static String stringWithFieldError(List fieldErrors, boolean allError) { + StringBuilder errString = new StringBuilder(); + if (!CollectionUtils.isEmpty(fieldErrors)) { + // 如果不为空 + for (FieldError fieldError : fieldErrors) { + if (errString.length() > 0) { + errString.append(","); + } + errString.append(fieldError.getField()).append(":").append(fieldError.getDefaultMessage()); + if (!allError && errString.length() > 0) { + return errString.toString(); + } + } + } + + return errString.toString(); + } +} \ No newline at end of file