상품을 저장하고 상품 상세 화면으로 리다이렉트 한 것 까진 좋았다.

그런데 고객 입장에서 저장이 잘 된 것인지 아닌지 확신이 들지 않는다. 그래서 저장이 되었다면

저장되었습니다. 라는 메시지를 보여주는 요구사항이 왔다는 가정을 하고 해결해보았다.

 

    @PostMapping("/add")
    public String addItemV6(Item item, RedirectAttributes redirectAttributes){
       Item savedItem = itemRepository.save(item);
       redirectAttributes.addAttribute("itemId",savedItem.getId());
       redirectAttributes.addAttribute("status",true);

        return "redirect:/basic/items/{itemId}";
    }

리다이렉트 할 때 간단히 status = true를 추가하여 뷰 템플릿에서 이 값이 있으면 저장 완료라는 문구를 출력해보았다.

 

RedirectAttributes

RedirectAttributes를 사용하면 URL 인코딩도 해주고, pathVariable, 쿼리 파라미터까지 처리해준다.

 

redirect:/basic/items/{itemId}

pathVariable 바인딩 : {itemId}

나머지는 쿼리 파라미터로 처리 : ?status=true

'웹프로그래밍 > 스프링 MVC' 카테고리의 다른 글

60. PRG Post/Redirect/Get  (0) 2022.04.20
59. 상품 수정  (0) 2022.04.19
58. 상품 등록 처리 - @ModelAttribute  (0) 2022.04.19
57. 상품 등록 폼  (0) 2022.04.18
56. 상품 상세  (0) 2022.04.18

+ Recent posts