Validation使用小記

一、工具類編寫

package com.example.demo.util;

import java.util.Optional;
import javax.validation.Validation;
import javax.validation.Validator;

/**
 * 校驗工具類
 */
public class ValidationUtils {

    private static Validator VALIDATOR = Validation.buildDefaultValidatorFactory().getValidator();

    private ValidationUtils(){

    }

    public static <T> String validate(T obj, Class<?>... classes) {
        StringBuilder sb = new StringBuilder();
        Optional.ofNullable(VALIDATOR.validate(obj, classes)).ifPresent(res -> res.forEach(cv ->
            sb.append("#").append(cv.getPropertyPath().toString()).append(cv.getMessage())
        ));
        return sb.toString();
    }

}

二、Pojo類編寫

package com.example.demo.entity;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;

@Data
public class Person {

    @NotNull(message = "{用戶Id}不能爲空")
    @Length(min=10, max=20, message = "{用戶Id}長度必須在10到20之間")
    String personId;

    @NotNull(message = "{用戶姓名}不能爲空")
    @Length(min=10, max=20, message = "{用戶姓名}長度必須在10到20之間")
    String personName;

}

三、測試

package com.example.demo.util;

import com.example.demo.entity.Person;
import org.junit.jupiter.api.Test;

public class ValidationUtilTest {

    @Test
    public void test(){

        Person person = new Person();
        person.setPersonId("12345610");
        System.out.println(ValidationUtils.validate(person));
    }
}

結果:
#personName{用戶姓名}不能爲空#personId{用戶Id}長度必須在10到20之間

注意:必須引入org.hibernate.validator包

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章