數據校驗工具類
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import javax.validation.groups.Default;
import java.util.Iterator;
import java.util.Set;
@Component
public class ValidUtil {
@Autowired
private Validator validator;
public <T> Set<ConstraintViolation<T>> validate(T object, Class<?>... groups) {
return validator.validate(object, groups);
}
public <T> Set<ConstraintViolation<T>> validateValue(Class<T> beanType, String propertyName, Object value, Class<?>... groups) {
return validator.validateValue(beanType, propertyName, value, groups);
}
public <T> String validAndReturnErrorTips(T t, Class<?>... groups) {
Set<ConstraintViolation<T>> validate = validator.validate(t, groups);
StringBuilder errorStr = new StringBuilder();
if (validate.size() > 0) {
Iterator<ConstraintViolation<T>> it = validate.iterator();
while (it.hasNext()) {
ConstraintViolation<T> constraintViolation = it.next();
errorStr.append(constraintViolation.getPropertyPath()).append(constraintViolation.getMessage()).append(",");
}
if (errorStr.length() > 0) {
errorStr.deleteCharAt(errorStr.length() - 1);
}
}
return errorStr.toString();
}
public <T> String validAndReturnErrorTips(T t) {
if (t == null) {
return "The valid data must not be null.";
}
Set<ConstraintViolation<T>> validate = validator.validate(t, Default.class);
StringBuilder errorStr = new StringBuilder();
if (validate.size() > 0) {
Iterator<ConstraintViolation<T>> it = validate.iterator();
while (it.hasNext()) {
ConstraintViolation<T> constraintViolation = it.next();
errorStr.append(constraintViolation.getPropertyPath()).append(" ").append(constraintViolation.getMessage()).append(",");
}
if (errorStr.length() > 0) {
errorStr.deleteCharAt(errorStr.length() - 1);
}
}
return errorStr.toString();
}
}