728x90
반응형
[스프링MVC 상품 관리 웹 페이지 7] PRG - Post/Redirect/Get (tistory.com)
상품 등록 처리 이후에 상품 상세 화면으로 리다이렉트하도록 코드를 작성해보았다. 그런데 고객 입장에서는 저장이 잘 된 것인지 안 된 것인지 확신이 들지 않는다.
상품 저장이 잘 되었으면, 상품 상세 화면에 "저장 완료!" 라는 메시지가 나오도록 해보자.
- 컨트롤러 로직 추가
/**RedirectAttributes*/
@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 를 사용하면 URL 인코딩도 해주고, pathVarible , 쿼리 파라미터까지 처리해준다.
- redirect:/basic/items/{itemId}
- pathVariable 바인딩: {itemId}
- 나머지는 쿼리 파라미터로 처리: ?status=true
- 실행해보면 다음과 같은 리다이렉트 결과가 나온다.
- http://localhost:8080/basic/items/3?status=true
- redirect:/basic/items/{itemId}
- 뷰 템플릿에 메시지 추가
- /resources/templates/basic/item.html
<h2 th:if="${param.status}" th:text="'저장 완료!'"></h2>
- th:if : 해당 조건이 참이면 실행
- ${param.status} : 타임리프에서 쿼리 파라미터를 편리하게 조회하는 기능 (원래는 컨트롤러에서 모델에 직접 담고 값을 꺼내야 하는데, 쿼리 파라미터는 자주 사용해서 타임리프에서 직접 지원)
[스프링MVC 상품 관리 웹 페이지 3] 상품 상세 (tistory.com)
728x90
반응형
'Spring Tutorial' 카테고리의 다른 글
[Spring 입문 3] 회원 관리 예제 - 백엔드 개발 (0) | 2024.07.14 |
---|---|
[Spring 입문 2] 스프링 웹 개발 기초 (정적컨텐츠, MVC와 템플릿엔진, API) (1) | 2024.04.28 |
[스프링MVC -상품 관리 웹 개발 7] PRG - Post/Redirect/Get (0) | 2023.09.01 |
[스프링MVC -상품 관리 웹 개발 6] 상품 수정 (0) | 2023.09.01 |
[스프링MVC -상품 관리 웹 개발 5] 상품 등록 처리 - @ModelAttribute (0) | 2023.08.31 |