: 도메인 로직에서 값을 검증할 수 있도록 도와주는 인터페이스
직접 검증을 하고 싶을 때
@AssertTrue
@AssertFalse
문자열을 다룰 때
@NotNull
: null 사용불가@NotEmpty
: null, 빈 문자열(스페이스 제외) 불가@NotBlank
: null, 빈 문자열, 스페이스만으로 이루어진 문자열 불가@Size(min= , max= )
: 길이 제한@Null
: null만 가능숫자를 다룰 때
@Positive
: 양수만@PositiveOrZero
: 양수와 0만@Negative
: 음수만@NegativeOrZero
: 음수와 0만@Min( )
: 최솟값 제한@Max( )
: 최댓값 제한정규식 관련
@Pattern(regexp=" ")
: 직접 정규식 작성 가능
: 검증 오류를 보관하는 객체
BindingResult가 있으면 @ModelAttribute
에 데이터 바인딩 시 오류가 발생해도 컨트롤러 호출되고 오류 정보가 담김.
없다면 400오류가 발생하며 컨트롤러가 호출되지 않고 오류 페이지로 이동함.
FieldError("objectname(modelattribute에 담기는 그 이름)", "필드명", "띄울 에러메시지")
: 스프링이 제공하는 객체로 필드 에러들이 FieldError를 생성해 bindingResult에 담김. (ObjectError의 자식)
FieldError는 오류 발생시 사용자 입력 값을 저장하는 기능을 제공.
ObjectError("objectname", "띄울 에러메시지")
: 특정 필드를 넘어서는 오류는 ObjectError를 생성해 bindingResult에 담아두기.