Commit 4f574756 authored by liaozan's avatar liaozan 🏀

Polish ValidationMessageBuilder

parent f234110f
package com.schbrain.common.util.support; package com.schbrain.common.util.support;
import org.hibernate.validator.internal.engine.path.PathImpl; import cn.hutool.core.text.StrPool;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError; import org.springframework.validation.ObjectError;
...@@ -36,10 +37,20 @@ public class ValidationMessageBuilder { ...@@ -36,10 +37,20 @@ public class ValidationMessageBuilder {
String prefix = "参数验证失败: "; String prefix = "参数验证失败: ";
StringJoiner joiner = new StringJoiner(", "); StringJoiner joiner = new StringJoiner(", ");
for (ConstraintViolation<?> violation : constraintViolations) { for (ConstraintViolation<?> violation : constraintViolations) {
PathImpl propertyPath = (PathImpl) violation.getPropertyPath(); String propertyPath = violation.getPropertyPath().toString();
joiner.add(propertyPath.asString() + " " + violation.getMessage()); joiner.add(getActualProperty(propertyPath) + " " + violation.getMessage());
} }
return prefix + joiner; return prefix + joiner;
} }
private static String getActualProperty(String propertyPath) {
if (StringUtils.isBlank(propertyPath)) {
return propertyPath;
}
if (!propertyPath.contains(StrPool.DOT)) {
return propertyPath;
}
return propertyPath.substring(propertyPath.lastIndexOf(StrPool.DOT) + 1);
}
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment