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

beSlow님의 프로필 이미지
beSlow

작성한 질문수

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

검증 직접 처리 - 개발

타입 오류 처리 시점에 대해 질문드립니다!

작성

·

183

1

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

강사님 안녕하세요! 항상 좋은 수업 감사합니다.

28분 45초 부근에서 타입 오류 처리(필드 타입 Integer인데 사용자가 String으로 입력하는 경우) 스프링 MVC에서 컨트롤러에 진입하기 전에 터진다는 말씀을 듣고 궁금증이 생겨 질문드립니다!

 

스프링 MVC1 강의에서, ModelAttribute 사용시 요청 파라미터로부터 리소스 객체를 만들고 setXXXX함수가 자동으로 실행되어 필드값이 설정된다고 설명해주셨었습니다.

 

이 경우, RequestMapping을 통해 컨트롤러에는 진입하지만 setXXXX함수가 실행되는 과정에서 객체의 필드와 타입이 매칭되지 않아 예외를 발생시키는 것이라고 이해하면 될까요? 아니면 타입 오류를 처리하는 별도의 로직이 스프링에 내장되어 있을까요?

 

제가 이해한 실행 흐름대로면 타입 체크가 들어갈만한 부분이 setXXXX 메서드 말고는 없을것같은데, 또 스프링이 워낙 많은 기능을 제공하다보니 컨트롤러 진입 전에 뭔가 해줄것 같기도 하고 그렇네요 ...ㅎㅎㅎ

답변 1

1

beSlow님의 프로필 이미지
beSlow
질문자

다시 생각해보니 Modelattribute 자체가 스프링이 외부에서 만들어 주입해주는 거였네요!! 외부에서 만드는 과정에서 바인딩 예외가 터지니까 컨트롤러 실행 이 안 되는게 맞을까요?

김영한님의 프로필 이미지
김영한
지식공유자

네 생각하신 내용이 맞습니다.

사실 가장 좋은 방법은 컨트롤러 첫줄에 로그를 남겨보면 바로 확인이 가능하겠지요^^?

감사합니다.

beSlow님의 프로필 이미지
beSlow
질문자

답변 감사합니다!!

beSlow님의 프로필 이미지
beSlow

작성한 질문수

질문하기