상품 수정 폼 컨트롤러
@GetMapping("/{itemId}/edit")
public String editForm(@PathVariable Long itemId, Model model){
Item item = itemRepository.findById(itemId);
model.addAttribute("item",item);
return "basic/editForm";
}
수정에 필요한 정보를 조회하고, 수정용 폼 뷰를 호출한다.
템플릿을 수정 후
상품 수정 개발을 하였다.
@PostMapping("/{itemId}/edit")
public String edit(@PathVariable Long itemId, @ModelAttribute Item item){
itemRepository.update(itemId,item);
return "redirect:/basic/items/{itemId}";
}
상품 수정은 상품 등록과 전체 프로세스가 유사하다.
GET /items/{itemId}/edit : 상품 수정 폼
POST /items/{itemId}/edit : 상품 수정 처리
리다이렉트
상품 수정은 마지막에 뷰 템플릿을 호출하는 대신에 상품 상세 화면으로 이동하도록 리다이렉트를 사용한다.
스프링은 redirect:/... 으로 편리하게 리다이렉트를 지원한다.
redirect:/basic/items/{itemId}
컨트롤러에 매핑된 @PathVariable의 값은 ridirect에도 사용 할 수 있다.
'웹프로그래밍 > 스프링 MVC' 카테고리의 다른 글
| 61. RedirectAttributes (0) | 2022.04.20 |
|---|---|
| 60. PRG Post/Redirect/Get (0) | 2022.04.20 |
| 58. 상품 등록 처리 - @ModelAttribute (0) | 2022.04.19 |
| 57. 상품 등록 폼 (0) | 2022.04.18 |
| 56. 상품 상세 (0) | 2022.04.18 |