public class TestDTO() {
@NotBlank(message="아이디를 입력해주세요.")
private Long id;
@NotBlank(message="이름을 입력해주세요.")
@Size(min=1, max=10, message="이름은 1~10자 사이여야 합니다.")
private String name;
@Min(0, "나이는 1보다 작을 수 없습니다.")
private int age;
@Email("이메일 형식이 알맞지 않습니다.")
private String email;
}
supports
해당 validator이 동작할 조건을 정의하고 주로 같은 class인지 비교해서 확인한다.validate
개발자가 원하는 검증을 진행public class TestValidator implements Validator {
public boolean supports(Class clazz) {
return TestDTO.class.equals(clazz);
}
public void validate(Object obj, Errors errors) {
ValidationUtils.rejectIfEmpty(e, "id", "id.empty");
TestDTO testDTO = (TestDTO) obj;
if (testDTO.getAge() < 0) {
e.rejectValue("age", "negativevalue");
}
}
}
@AssertFalse
해당 필드가 거짓인지 검증
@AssertTrue
해당 필드가 참인지 검증
@Email(message = "5 - 20 사이에 글자")
해당 필드 문자열은 이메일 형식인지 검증
@Future
해당 필드가 미래의 날짜, 또는 시간인지 검증
@Past
해당 필드가 과거의 순간, 날짜 또는 시간인지 검증
@Max(value=)
해당 필드가 value보다 작거나 같은지 검증
@Min(value=)
해당 필드가 value보다 크거나 같은지 검증
@NotBlank
해당 필드가 null이 아니고 하나 이상의 공백이 아닌 문자를 포함하는지 검증
@NotEmpty
해당 필드가 null이거나 비어있는지 검증
@NotNull
해당 필드가 null이 아닌지만 검증
@Pattern(regexp=, message = "5 - 20 사이에 글자")
해당 필드 문자열이 regexp에 지정된 정규식과 일치하는지 검증
@Size(min=, max=, message = "5 - 20 사이에 글자")
해당 필드의 크기가 해당 범위 내에 있는지 검증
더 많은 정보를 알고 싶다면 링크된 공식문서를 읽어보도록 하자!
공식문서