Validator 作用:后台数据字段校验
举例:
entity.
Controller层
Util工具类:
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.groups.Default;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
public class BaseValidatorImpl {
// private static final Logger log = LoggerFactory.getLogger(BaseValidatorImpl.class);
private static Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
public static <T> Map<String, StringBuffer> validate(T obj){
Map<String, StringBuffer> errMap = null;
Set<ConstraintViolation<T>> set = validator.validate(obj, Default.class);
return printMsg(set);
}
public static <T> Map<String, StringBuffer> validate(Class<T> cls, String s, Object obj){
Map<String, StringBuffer> errMap = null;
Set<ConstraintViolation<T>> set = validator.validateValue(cls, s, obj);
return printMsg(set);
}
public static <T> Map<String, StringBuffer> printMsg(Set<ConstraintViolation<T>> set){
Map<String, StringBuffer> errMap = null;
if(Objects.nonNull(set) && set.size() > 0) {
errMap = new HashMap<String, StringBuffer>();
String property = null;
for(ConstraintViolation<T> cv: set){
property = cv.getPropertyPath().toString();
if(errMap.get(property) != null){
errMap.get(property).append("," +cv.getMessage());
}else{
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(cv.getMessage());
errMap.put(property, stringBuffer);
}
}
}
return errMap;
}
}
pom文件:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.9.Final</version>
</dependency>