반응형
리다이렉트를 사용하여 상품이 정상적으로 저장이 되었는지 확인하는 문구가 출력이 되도록 설정할 수도 있다.
내가 팀 프로젝트를 했을 떄에는 이것을 리다이렉트 JSP를 만들어 맵핑 리턴을 JSP로 보내고 JSP에서 JavaScript를 통해 alert를 통해 결과를 안내했는데 이번에는 페이지 자체에 안내가 생기도록 코드를 짜보는 시간을 보냈다.
@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를 추가해 뷰 템플릿에서 이 값이 있다면 저장 되었다는 메시지를 출력하도록 할 수 있다.
RedirectAttribute를 사용하면 URL 인코딩도 해주고 pathVarible, 쿼리 파라미터까지도 처리해준다고 한다.
<h2 th:if="${param.status}" th:text="'저장 완료!'"></h2>
간단하게 HTML에 이렇게 추가하여 사용이 가능하다.
th:if를 통해 해당 조건이 참인 경우에만 실행이 되도록 하고 ${param.status}를 통해 타임리프에서 쿼리 파라미터를 편리하게 조회하게 한다. 이 경우 Controller에서 model에 담아 값을 꺼내어 사용했어야 하는데 쿼리 파라미터는 자주 사용하기 때문에 타임리프에서 직접 지원한다고 한다.
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 타임리프 - Escape, Unescape (0) | 2022.02.04 |
---|---|
[Spring Boot] : 타임리프, thymeleaf 소개 (0) | 2022.02.04 |
[Spring Boot] : Post, Redirect, Get 사용하기 (0) | 2022.02.03 |
[Spring Boot] : 상품 수정 구현하기 (0) | 2022.02.03 |
[Spring Boot] : 상품 등록 처리 @ModelAttribute 사용하기 (0) | 2022.02.03 |
댓글