작성
·
218
답변 1
0
안녕하세요. 서수민님, 공식 서포터즈 OMG입니다.
1-수정하려는 아이템 클릭 시 @PathVariable itemId로 아이템 정보를 조회 후 정보를 모델에 담아 editForm으로 이동하는 코드
@GetMapping("/{itemId}/edit")
public String editForm(@PathVariable Long itemId, Model model) {
Item item = itemRepository.findById(itemId);
model.addAttribute("item", item);
return "basic/editForm";
}
2-해당 item의 Id가 세팅되어 있는editForm. html
<div>
<label for="id">상품 ID</label>
<input type="text" id="id" name="id" class="form-control" value="1" th:value="${item.id}" readonly>
</div>
3-itemId를 PathVariable로 받아서 업데이트 하는 로직
@PostMapping("/{itemId}/edit")
public String edit(@PathVariable Long itemId, @ModelAttribute Item item) {
itemRepository.update(itemId, item);
return "redirect:/basic/items/{itemId}";
}
1-2-3의 흐름 순서로 아이템 정보를 수정합니다.
코드를 보시면 itemId를 갖고 조회를 하거나, 저장 시 활용하는 것을 확인하실 수 있습니다.
감사합니다.
답변 감사합니다! return 시에 view네임 만 있어서 햇갈리는것 같아요 model은 따로 return을 해주지 않아도 spring이 처리해 html파일로 보내주는게 맞나요?? 그리고 model은 계속 어딘가에 저장되어 있는지 아니면 view를 return해줄때에만 같이 보내지고 사라지는 지도 궁금해요 감사합니다~