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
... 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 |