인프런 김영한님의 스프링 mvc2편을 보고 정리한 글입니다.
무엇을 배웠나요?
참고 @ModelAttribute는 HTTP 요청 파라미터(URL 쿼리 스트링, POST Form)를 다룰 때 사용한다. @RequestBody는 HTTP Body의 데이터를 객체로 변환할 때 사용한다. 주로 API JSON 요청을 다룰 때 사용한다.
- @RequestBody의 경우 주로 api를 통해 데이터를 주고 받는데 이때 다음과 같은 경우로 나뉜다.
- 성공 요청 : 성공
- 실패 요청 : JSON을 객체로 생성하는 것 자체가 실패함
- 검증 오류 요청 : JSON을 객체로 생성하는 것은 성공했고, 검증에서 실패함
- 만약 HttpMessageConverter에서 요청 JSON을 도메인 객체로 생성하는데 실패하면 컨트롤러 자체가 호출되지 않고 예외가 발생한다. 이떄 컨트롤러가 호출되지 않기 때문에 Validator도 실행 되지 않는다.
- @ModelAttribute vs @RequestBody
- @ModelAttribute 는 객체의 필드단위로 세밀하게 적용이 가능하다.
- @RequestBody 는 전체 객체 단위로 적용 된다.
'Spring' 카테고리의 다른 글
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 - 쿠키 사용 (0) | 2022.09.11 |
---|---|
로그인 처리1 - 쿠키, 세션 (0) | 2022.09.11 |
검증2 - Validation : Form 전송 객체 분리 (0) | 2022.09.01 |
검증2 - Validation : Bean Validation (0) | 2022.09.01 |
검증1 - Validation : Validator 분리1,2 (0) | 2022.08.26 |