09. MVC 2 - 커맨트 객체 값 검증 및 에러 메시지 처리
728x90

validator(Object target, Errors errors)

 - 첫 번째 파라미터로 전달받은 객체를 검증하고 오류 결과를 Errors에 담는다

 - 검사 대상 객체의 특정 프로퍼티나 상태가 올바른지 검사

 - 올바르지 않다면 Errors의 rejectValue() 메서드를 이용해 에러 코드 저장

String name = regReq.getName();
if(name == null || name.trim().isEmpty()) {
	errors.rejectValue("name", "에러 코드");
}

validator(RegisterReqeust regReq, Errors errors)

// errors  객체의 getFieldValue("name") 메서드를 실행해서
// 커맨드 객체의 name 프로퍼티 값을 구함
// 따라서 커맨드 객체를 직접 전달하지 않아도 값 검증을 할 수 있음

ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "에러 코드");

@Valid

 - 글로벌 범위 Validator 설정 시 사용 가능

 - 설정 클래스에서 WebMvcConfigurer의 getValidator() 메서드가 Validator 구현 객체를 리턴하도록 구현

@Override
public Validator getValidator() {
	return new RegisterRequestValidator();
}
public String register(@Valid RegisterRequest regReq, Errors errors) {
...

@InitBinder

 - WebMvcConfigurer가 아닌 해당 클래스에 정의

@InitBinder
protected void initBinder(WebDataBinder binder) {
	binder.setValidator(new RegisterRequestValidator());
}

Bean Validation

 - pom.xml에 Hibernate Validator 추가

@NotNull

@Digits

@Size(min = 6)

@NotBlank

@Email

... 350p

 

 

728x90

'프로그래밍 > SPRING' 카테고리의 다른 글

10. MVC 3 - 세션, 인터셉터, 쿠키  (0) 2022.08.04
08. MVC 1 - 컨트롤러, 뷰 구현  (0) 2022.08.02
07. Spring Web MVC  (0) 2022.08.01
06. AOP  (0) 2022.04.26
05. DI 적용  (0) 2022.04.24