입력값 검증(validate) : 스프링 MVC 프레임워크에서 Bean(자바빈 클래스..VO) Validation 기능을 이용하여 요청 파라미터 값(입력해야하는 값)이 바인딩된 도메인 클래스(메모리에 올라간 buyerVO객체)의 입력값 검증을 함
언제 메모리에 올라감?
컨트롤러에 요청이 와서 메서드가 생성이 되고 BuyerVO buyerVO가 생성되고 메모리에 생성되는 것 이때 조건을 어떻게 할지 Vo에 있는 것과 비교해서 찾아냄(validate)
입력값 검증 절차
- 메서드 매개변수(컨트롤러에 있는 것)에 도메인 클래스(BuyerVO buyerVO)를 정의하고 @Validate를 지정
- 입력값 검증 대상의 도메인 클래스 직후(BuyerVO buyerVO 바로 다음에 있는것) BindingResult를 정의
- BindingResult에는 요청 데이터의 바인딩 오류와 입력값 검증 오류 정보가 저장됨
- forwarding을 통해 뷰(jsp)와 오류데이터를 공유(redirect는 안됨)
입력값 검증 결과(BindingResult)
- hasErrors() : 오류가 발생한 경우 true를 반환
- getGlobalErrors() : 객체 레벨의 오류 정보를 가져옴
- getFieldErrors() : 필드(멤버변수) 레벨의 오류
입력값 검증 규칙
- @NotBlank : 문자열이 null이 아니고 trim한 길이가 0보다 크다는 것을 검사
- @NotNull : 빈 값이 아닌지 검사
- @Email : 이메일 주소 형식인지 검사
- @Size : 글자수 검사(최대 몇글짜 까지인지)
- @Past : 과거 날짜인지 검사(오늘 기준으로 과거 날짜만 가능)
- @Future : 미래 날짜인지 검사(오늘 기준으로 미래 날짜만 가능)