Validator를 상속받는 객체를 생성한다.
public class ExampleValidator implements Validator {
//유효성 검사를 하고 싶은 객체의 타입을 조사한다. 여기서는 ExampleBean의 유효성 검사를 위해 만들었다.
@Override
public boolean supports(Class<?> aClass) {
return ExampleBean.class.isAssignableFrom(aClass);
}
//실제로 유효성 검사의 로직을 구현할 수 있는 메소드 부분이다.
@Override
public void validate(Object o, Errors errors) {
ValidationUtils.rejectIfEmpty(errors, "data1", "error1");
ExampleBean bean = (ExampleBean)o;
String data1 = bean.getData1();
if(data1.length()==0){
//에러 객체에 오류정보를 저장하는 메소드.("프로퍼티 이름","코드이름","메세지")
errors.rejectValue("data1", "lengthError", "message");
}
}
}
이후에 사용하고 싶은 Controller에 @InitBinder를 추가하고 메소드를 구현하면 된다.
@InitBinder
public void initBinder(WebDataBinder webDataBinder){
ExampleValidator validator = new ExampleValidator();
webDataBinder.addValidators(validator);
}
여기서 등록할 때 빈으로 등록해서 사용 해도 되고 아니면 일반 객체처럼 사용해도 된다.