작성
·
202
2
View 와 Controller 사이에서 ModelAttribute 로 데이터를 주고 받는 부분에 질문이 있습니다.
VIew 에는 아래와 같이 Input 들어 있는 예제가 있습니다.
<div>
<label for="itemName">상품명</label>
<input type="text" id="itemName" name="itemName" class="form-control"
value="상품A" th:value="${item.itemName}" readonly>
</div>
<div>
<label for="price">가격</label>
<input type="text" id="price" name="price" class="form-control"
value="10000" th:value="${item.price}" readonly>
</div>
<div>
<label for="quantity">수량</label>
<input type="text" id="quantity" name="quantity" class="form-control"
value="10" th:value="${item.quantity}" readonly>
</div>
submit 이 트리거가 되면 아래 action 이 수행이 됩니다.
<form action="item.html" th:action="@{/basic/items/add}" method="post">
그렇게 되면
Controller 에서 다음과 같이 파라미터를 ModelAttribute 로 받을수 있다고 배웠습니다.
public String addItemV3(@ModelAttribute Item item) {
itemRepository.save(item);
return "basic/item";
}
여기서 질문이 있습니다.
사실상 어떤 객체든 필드명만 같다면 꼭 Item 이 아니어도
사용이 가능한걸로 알고 있는데
1. 이것도 메세지 컨버터가 필드 이름만 보고 setter 를 이용해 데이터를 알아서 넣어준다고 생각하면 될까요?
즉 어떤 객체든 상관없이 필드에
itemName, price, quantity 만 있으면 문제가 없는거죠?
감사합니다.