해결된 질문
작성
·
375
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편으로 돌아가는데 곧 나올 내용이었네요!
감사합니다 ㅎㅎㅎ