더북(TheBook)

    public boolean supports(Class<?> clazz) { // Book 클래스의 유효성 검사 여부를 위한 메서드
        return Book.class.isAssignableFrom(clazz);
    }

    public void validate(Object target, Errors errors) { // Book 클래스의 유효성 검사 메서드
        Book book = (Book) target;
        if (book.getUnitPrice() >= 10000 && book.getUnitsInStock() > 99) {
            // 오류 객체의 속성과 메시지 저장
            errors.rejectValue("unitsInStock", "UnitsInStockValidator.message"); 
        }
    }
}

Validator 인터페이스의 supports() 메서드는 주어진 Book 클래스에 대한 유효성 검사 여부를 결정합니다.

Validator 인터페이스의 validate() 메서드는 주어진 Book 클래스에 대해 유효성 검사를 합니다. 도서 가격이 1만 원 이상이고, 재고가 99권을 초과하면 유효성 검사를 할 때 오류가 발생합니다. 그러면 Errors 객체의 rejectValue() 메서드가 메시지 리소스 파일에 설정된 오류 코드 UnitsInStockValidator.message의 메시지를 출력합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.