더북(TheBook)

ConstraintValidator 인터페이스는 매개변수 두 개를 정의합니다. 첫 번째 매개변수는 유효성 검사를 위해 MemberIdValidator 클래스를 사용하는 사용자 정의 애너테이션을 지정합니다. 두 번째 매개변수는 사용자 정의 애너테이션이 붙는 도메인 클래스 Member의 멤버 변수 타입을 설정합니다.

initialize() 메서드는 사용자 정의 애너테이션 @MemberId가 속성 값이 없기 때문에 구현 부분 없이 메서드만 선언합니다.

isValid() 메서드는 ConstraintValidator<MemberId, String>에서 두 번째 매개변수 타입으로 정의한 도메인 클래스의 멤버 변수 값을 읽어 유효성 검사를 수행합니다. 유효성 검사에서 오류가 발생하면 false를 반환합니다.

Example02Controller.java

package com.springmvc.chap13;
...
@Controller
@RequestMapping("/exam02")
public class Example02Controller {

    @GetMapping
    public String showForm(Model model) {
        model.addAttribute("member", new Member());
        return "webpage13_02";
    }

    @PostMapping
    public String submit(@Valid @ModelAttribute Member member, Errors errors) {
        if (errors.hasErrors()) {
            return "webpage13_02";
        }
            return "webpage13_result";
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.