폼데이터 값 검증
- Validator를 이용한 검증
- ValidationUtils 클래스
- @Valid와 @InitBinder
Validator를 이용한 검증
폼에서 전달되는 데이터를 커맨드 객체에 담아 컨트롤 객체에 전달한다고 하였습니다. 이때 커맨드객체의 유효성을 검사할 수 있습니다. 참고로 javascript를 이용하는 것은 클라이언트에서 검사하는 것이고, 지금하는 Validator 인터페이스를 이용하는 방법은 서버에서 검사하는 방법 입니다.
클라이언트(form) –> 컨트롤러(Validator 객체 검증) –> 뷰 (커맨드객체) 검증결과 —
우선 validation을 검사하는 클래스를 만들어줍니다.
Validator 인터페이스를 상속받아 메소드 2개를 구현합니다.
컨트롤러부분에서 이 만든클래스를 호출하여 검사합니다.
이때 BindingResult 객체에는 에러가 담길수있습니다. 따라서 메소드를 수행했을때 문제가생기면 rejectValue를통해 에러가 담기게 됩니다.
ValidationUtils 클래스
이 클래스에 있는 static메소드를 사용하여 짧게 바꿀수 있습니다.
@Valid와 @InitBinder
좀더 스프링프레임워크적인 방법으로는 @Valid 어노테이션을 이용한 방법이있습니다.
이렇게 pom.xml에 추가해줍니다.
그다음 검사하고싶은 커맨드객체 앞에 @Valid 어노테이션을 쓰고
@InitBinder 어노테이션을 위와같이 구현합니다. 이때 validation 체크하는 클래스가 주입되어
자동으로 됩니다.