인프런 커뮤니티 질문&답변
POST 요청시 메서드로 들어오는 BookForm 객체의 생성 주체가 누구인가요?
해결된 질문
작성
·
436
1
안녕하세요.
코드를 읽어보며 흐름을 파악하다가 궁금증이 생겨 질문 드립니다.
public class ItemController {
    @GetMapping("/items/new")
    public String createForm(Model model) {
        model.addAttribute("form", new BookForm());
        return "items/createItemForm";
    }
    @PostMapping("/items/new")
    public String create(BookForm form) {
         ... 생략
    }
/items/new에 GET으로 접근하면, createForm()이 호출되어 BookForm 객체가 생성되고, Model 객체를 통해 viewResolver로 넘어가는 로직은 이해가 됩니다.

그러나 POST 요청을 보내면, create()가 호출되어 BookForm 객체를 인자로 받는데요.
이때, 인자로 들어온 BookForm 객체는 GET 요청시 보내준 BookForm 객체와 다른 객체더라구요.
아마 누군가가 HTML input 태그에 입력된 값을 BookForm 객체로 변환시켜 넣어주는 것 같은데요.
누가 이 책임을 갖고, 어떻게 데이터를 객체로 변환시키는지 그 흐름이 궁금합니다.
마치 @ResponseBody에서 HttpMessageConverter가 객체를 JSON으로 변환시켜준 것처럼
이번에도 스프링이 HttpMessageConverter를 통해 HTML input 데이터를 객체로 변환시켜 Controller에게 반환시켜 주는 걸까요?
감사합니다.







기본편까지 듣고 잠깐 넘어왔다가 이제 다시 MVC 1편으로 돌아가는데 곧 나올 내용이었네요!
감사합니다 ㅎㅎㅎ