@GetMapping("/items/{itemId}/edit")
public String updateItemForm(@PathVariable("itemId") Long itemId, Model model) {
Book item = (Book) itemService.findOne(itemId);
BookForm form = new BookForm();
form.setId(item.getId());
form.setName(item.getName());
form.setPrice(item.getPrice());
form.setStockQuantity(item.getStockQuantity());
form.setAuthor(item.getAuthor());
form.setIsbn(item.getIsbn());
model.addAttribute("form", form);
return "items/updateItemForm";
}
@PostMapping("/items/{itemId}/edit")
public String updateItem(@PathVariable Long itemId, @ModelAttribute("form") BookForm form){
Book book = new Book();
book.setId(form.getId());
book.setName(form.getName());
book.setPrice(form.getPrice());
book.setStockQuantity(form.getStockQuantity());
book.setAuthor(form.getAuthor());
book.setIsbn(form.getIsbn());
itemService.saveItem(book);
return "redirect:/items";
}
@PathVariable μ΄λ
Έν
μ΄μ
μ URL κ²½λ‘μ μΌλΆλ₯Ό λ©μλμ λ§€κ°λ³μλ‘ κ°μ Έμ¬ μ μκ² ν΄μ€λ€. URL κ²½λ‘μ μλ λ³μλ₯Ό λ©μλμμ μ¬μ©ν μ μλλ‘ νλ κΈ°λ₯μ μ 곡νλ€.
μ λ©μλμμ **@PathVariable("itemId")**λ λ€μκ³Ό κ°μ μλ μ리λ₯Ό κ°μ§λ€.
itemId λ³μλ₯Ό μ°Ύλλ€. μλ₯Ό λ€μ΄, URLμ΄ **/items/123/edit**λΌλ©΄ **itemId**λ **123**μ΄ λλ€.itemId λ³μμ κ°μ ν΄λΉ λ°μ΄ν° νμ
(Long)μΌλ‘ λ³ννλ€.Long itemId)μ μ λ¬νλ€.μ΄λ₯Ό ν΅ν΄ λ©μλλ URL κ²½λ‘μ μλ itemId κ°μ μ¬μ©νμ¬ ν΄λΉ μνμ μ 보λ₯Ό κ°μ Έμ€κ³ μμ νκΈ° μν μμ
μ μνν μ μλ€. **@PathVariable**μ μ¬μ©νλ©΄ λμ μΈ URL κ²½λ‘λ₯Ό μ²λ¦¬νλ λ° μ μ©νλ©°, μ¬μ©μκ° μμ²νλ 리μμ€λ₯Ό ν¨κ³Όμ μΌλ‘ μλ³ν μ μλ€.
@ModelAttribute μ΄λ
Έν
μ΄μ
μ HTTP μμ²μ νΌ λ°μ΄ν°λ₯Ό μλ° κ°μ²΄λ‘ λ°μΈλ©νκ³ λ©μλμ λ§€κ°λ³μλ‘ μ λ¬νλ μν μ νλ€. μ΄λ₯Ό ν΅ν΄ νΌ λ°μ΄ν°λ₯Ό μ½κ² μ²λ¦¬ν μ μλ€.
μ λ©μλμμ **@ModelAttribute("form") BookForm form**μ μλ μ리λ λ€μκ³Ό κ°λ€.
@ModelAttribute μ΄λ
Έν
μ΄μ
μ΄ λΆμ λ§€κ°λ³μλ₯Ό μ°Ύλλ€.@ModelAttribute("form")**μ΄ λΆμ BookForm κ°μ²΄λ₯Ό μμ±νλ€.BookForm κ°μ²΄μ μ μ ν νλμ μλμΌλ‘ λ°μΈλ©νλ€. μ¦, νΌ λ°μ΄ν°μ μ΄λ¦κ³Ό μΌμΉνλ BookForm κ°μ²΄μ νλμ κ°μ ν λΉνλ€.BookForm κ°μ²΄λ₯Ό λ©μλμ λ§€κ°λ³μλ‘ μ λ¬νλ€.μ΄λ₯Ό ν΅ν΄ λ©μλλ μ λ¬λ BookForm κ°μ²΄λ₯Ό μ¬μ©νμ¬ μν μ 보λ₯Ό μμ ν μ μλ€. **@ModelAttribute**λ₯Ό μ¬μ©νλ©΄ νΌ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ° νμν 보μΌλ¬νλ μ΄νΈ μ½λλ₯Ό μ€μΌ μ μμΌλ©°, μ½λμ κ°λ
μ±κ³Ό μ μ§λ³΄μμ±μ΄ ν₯μλλ€.
μλ₯Ό λ€μ΄, μμμ μ¬μ©ν λ©μλλ₯Ό **@ModelAttribute**λ₯Ό μ¬μ©νμ§ μκ³ μμ±νλ€λ©΄ λ€μκ³Ό κ°μ΄ μ²λ¦¬ν΄μΌ νλ€.