版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32534855/article/details/83269266
因公司项目需要,我们需要在其他地方对实体类经行校验,所有提取出来一个工具类ValidateUtil
public class ValidateUtil {
/**
* 校验实体类
*
* @param t
* @return
*/
public static <T> List<Map<String, String>> validate(T t) {
//定义返回错误List
List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
Map<String, String> errorMap;
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<T>> errorSet = validator.validate(t);
for (ConstraintViolation<T> c : errorSet) {
errorMap = new HashMap<>();
errorMap.put("field", c.getPropertyPath().toString()); //获取发生错误的字典名称
errorMap.put("msg", c.getMessage()); //获取校验信息
errList.add(errorMap);
}
return errList;
}
}
调用
List<Map<String, String>> validate = ValidateUtil.validate(school);