사용자 웹 요청 URL이 http://.../json이면 Example01Controller2 컨트롤러의 요청 처리 메서드 showForm()으로 webpage14_02.jsp 파일을 출력합니다. 폼 페이지에서 실행하기 버튼을 누르면 웹 요청 URL http://.../test가 호출되어 웹 요청 URL에 해당하는 Example01Controller2 컨트롤러의 요청 처리 메서드 submit()이 실행됩니다.
submit() 메서드에서 @RequestBody가 선언된 매개변수인 HashMap 타입의 map 객체는 HttpMessageConverter 타입의 메시지 변환기로 JSON 형식인 {"name":"kim","age":"30"}으로 전달받게 됩니다.
▲ 그림 14-2 실행 결과
Note ≣ | HttpMessageConverter로 request body를 매개변수로 변환하는 방법을 알려 주세요!
HttpMessageConverter를 사용하면 HTTP 요청 body를 메서드 매개변수로 변환할 수 있습니다. HttpMessage Converter가 HTTP 요청 메시지를 객체로 변환하고, 객체에서 HTTP 응답 body로 변환하는 담당을 합니다.
RequestMappingHandlerAdapter 클래스는 @RequestBody가 적용된 매개변수나 @ResponseBody가 적용된 메서드에 대해 HttpMessageConverter를 사용해서 변환합니다. HttpMessageConverter를 구현하는 주요 클래스를 정리하면 다음과 같습니다.