數據校驗工具類

數據校驗工具類

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;

/**
 * @name: ValidUtil
 * @author: wengl.
 * @date: 2019/6/3.
 * @version: 1.0
 * @Description: Valid工具類,提供hibernate-validate擁有的驗證效果
 */
@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);
    }

    /**
     *    * 校驗參數,並返回錯誤提示
     *    * @paramObject t   驗證的對象
     *    * @paramObject groups 驗證的組別
     *    * @paramObject <T>  對象擦除前原類型
     *    * @return 錯誤提示
     *    
     */
    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();
    }

    /**
     *    * 校驗參數,並返回錯誤提示
     *    * @paramObject t   驗證的對象
     *    * @paramObject groups 驗證的組別
     *    * @paramObject <T>  對象擦除前原類型
     *    * @return 錯誤提示
     *    
     */
    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();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章