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

재영님의 프로필 이미지
재영

작성한 질문수

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

정리

Post 폼 요청 시, 타입 미스매치에 대한 질문

해결된 질문

작성

·

143

1

JSON 요청 시, 타입을 맞지 않게 입력하게 되면, 컨트롤러 자체가 아예 호출되지 않는 것을 강의를 통해 확인했습니다.

 

Post 폼 요청 시, 이런 타입에 대한 올바르지 않은 입력을 하게 되어도, 컨트롤러가 호출되고 검증 단계까지 도달할 수 있는 이유가 스프링 프레임워크가 자동으로 타입을 적절하게 형변환해주기 때문인가요? 이유가 궁금합니다!

답변 1

3

안녕하세요. 재영님, 공식 서포터즈 OMG입니다.

네, 이해하신게 맞습니다.

스프링은 JSON 요청과 POST 폼 요청은 데이터 바인딩 & 검증 과정에서 다르게 처리합니다.

 

JSON 요청

@RequestBody 어노테이션을 사용하여 Json 문자열을 자바 객체로 변환하는데, 구조나 타입 등 객체의 필드와 일치하지 않아 변환에 실패할 경우 예외가 발생합니다.

 

Post 폼 요청

@ModelAttribute 어노테이션을 사용하며,(생략가능) 객체의 프로퍼티 바인딩이 진행됩니다.

바인딩이 되지 않더라도 @RequestBody와 같이 예외 발생으로 컨트롤러 호출 자체가 안되는 것은 아니며, 바인딩에 실패할 뿐 컨트롤러 메서드 호출은 실행됩니다.(바인딩에 성공한 데이터들만 객체의 값들이 채워지겠죠?)

 

다음 링크도 참고해주세요 😀

https://tecoble.techcourse.co.kr/post/2021-05-11-requestbody-modelattribute/

감사합니다.

재영님의 프로필 이미지
재영
질문자

레퍼런스까지.. 답변 정말 감사합니다!!

재영님의 프로필 이미지
재영

작성한 질문수

질문하기