RedirectAttributes

WAS·2024년 2월 13일
0

✅ RedirectAttributes

  • RedirectAttributes 를 사용하면 URL 인코딩 + 쿼리 파라미터까지 처리해줌
    @PostMapping("/add")
    public String addItemV6(Item item, RedirectAttributes redirectAttributes){ // ModelAttribute 어노테이션 자체를 생략 가능

        Item saveItem = itemRepository.save(item);
        redirectAttributes.addAttribute("itemId",saveItem.getId()); // 여기서 저장한 itemId가 주소값 뒤에 {itemId}로 들어감
        redirectAttributes.addAttribute("status",true);
        return "redirect:/basic/items/{itemId}";
    }
  • pathVariable 바인딩 : {itemId}
  • 나머지는 쿼리 파라미터로 처리 : ?status=true

return 화면 방식 : 서버 내부에서 직접 뷰를 찾아 렌더링 + 브라우저의 URL이 변경되지 않음
redirect:url주소 방식 : 클라이언트에게 새로운 URL로 재요청하도록 지시 + 브라우저의 URL이 새로운 주소로 변경

redirect 는 주로 POST-Redirect-GET 패턴에서 사용되어 폼 재제출 문제를 방지하고, 새로고침 시 중복 처리를 막는 데 유용

✅ 뷰 템플릿 메시지 추가

<h2 th:if="${param.status}" th:text="'저장완료'"></h2>
  • ${param.status} : 타임리프에서 쿼리 파라미터를 편리하게 조회하는 기능
    -> 원래는 컨트롤러에서 모델을 직접 담고 값을 꺼내야하지만
    쿼리 파라미터는 자주 사용하기 때문에 타임리프에서 지원해줌
profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글