인프런 커뮤니티 질문&답변

무아무아무아아아님의 프로필 이미지
무아무아무아아아

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

Validator 분리2

@InitBinder를 넣으면 해당 컨트롤러에 검증기가 작동한다고 했는데

작성

·

216

2


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요.
@InitBinder를 넣으면 해당 컨트롤러에서는 어떤 메소드가 실행되도 검증기가 작동한다고 하셨는데 그 중에서 @Validated를 선언한 값만 검증을 수행하나요?
 
그러면 Controller 윗 줄에 @InitBinder 코드를 적어도 @Validated가 적힌 Item이 없다면 작동을 안하는거로 이해하면 될까요?
 
감사합니다.

답변 1

2

안녕하세요. 무아무아무아아아님, 공식 서포터즈 y2gcoder입니다.

말씀하신 것처럼 @InitBinder를 해당 컨트롤러에 설정해주면 그 컨트롤러를 호출할 때마다 @InitBinder에서 WebDataBinder에 저희가 만든 validator를 추가하게 됩니다. 
또한 @Validated(+@Valid)는 valdate를 실행하라는 애노테이션입니다. 해당 애노테이션이 붙으면 WebDataBinder에 등록한 validator를 실행하므로 v5 단계에서 했던 validate() 대신인 것이라고 생각하시면 됩니다. 

결과적으로 해당 @Validated(+@Valid)을 붙여야 WebDataBinder에 등록한 validator들을 실행한다고 생각해주시면 될 것 같습니다!


감사합니다.

무아무아무아아아님의 프로필 이미지
무아무아무아아아

작성한 질문수

질문하기