코드13-19 BookId.java
package com.springmvc.validator;
...
@Target({METHOD, FIELD, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy=BookIdValidator.class)
public @interface BookId {
String message() default "{BookId.NewBook.bookId}"; ➊
Class<?>[] groups() default {};
public abstract Class<? extends Payload>[] payload() default {};
}
➊ 코드 13-17 BookValidator 클래스의 validate() 메서드에서 살펴보면, 제약 사항에 대한 오류가 발생했을 때 ConstraintViolation 객체는 messageTemplate='{javax.validation.constraints.필드 이름.message}'처럼 메시지 형식의 정보를 가져옵니다. 그러므로 유효성 검사에 따른 오류 메시지를 적절하게 출력하려면 messageTemplate에 맞추어 { } 패턴 형식으로 코드를 수정합니다.