본문 바로가기
728x90
반응형

redirect4

[Spring] RedirectAttributes 상품을 저장하고 상품 상세 화면으로 리다이렉트 한 것 까지는 좋았다. 그런데 고객 입장에서 저장이 잘 된 것인지 안 된 것인지 확신이 들지 않는다. 그래서 저장이 잘 되었으면 상품 상세 화면에 "저장되었습니다"라는 메시지를 보여달라는 요구사항이 왔다. 간단하게 해결해보자. BasicItemController에 추가 /** * RedirectAttributes */ @PostMapping("/add") public String addItemV6(Item item, RedirectAttributes redirectAttributes) { Item saveItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", saveItem.ge.. 2023. 6. 15.
[Spring] PRG 패턴 - Post/Redirect/Get 사실 지금까지 진행한 상품 등록 처리 컨트롤러는 심각한 문제가 있다. (addItemV1 ~ addItemV4) 상품 등록을 완료하고 웹 브라우저의 새로고침 버튼을 클릭해보자. 상품이 계속해서 중복 등록되는 것을 확인할 수 있다. 전체 흐름 그 이유는 다음 그림을 통해서 확인할 수 있다. POST 등록 후 새로 고침 웹 브라우저의 새로 고침은 마지막에 서버에 전송한 데이터를 다시 전송한다. 상품 등록 폼에서 데이터를 입력하고 저장을 선택하면 POST /add + 상품 데이터를 서버로 전송한다. 이 상태에서 새로 고침을 또 선택하면 마지막에 전송한 POST /add + 상품 데이터를 서버로 다시 전송하게 된다. 그래서 내용은 같고, ID만 다른 상품 데이터가 계속 쌓이게 된다. 이 문제를 어떻게 해결할 수.. 2023. 6. 15.
[Spring] 상품 수정 상품 수정 폼 컨트롤러 BasicItemController에 추가 @GetMapping("/{itemId}/edit") public String editForm(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/editForm"; } 수정에 필요한 정보를 조회하고, 수정용 폼 뷰를 호출한다. 상품 수정 폼 뷰 /resources/templates/basic/editForm.html\ 상품 수정 폼 상품 ID 상품명 가격 수량 저장 취소 상품 수정 폼은 상품 등록과 유사하고, 특별한 내용이 없다. 상품 수정 개발 @P.. 2023. 6. 15.
[Spring] HttpServletResponse - 기본 사용법 HttpServletResponse의 역할 Http 응답 메시지를 생성하고, 기타 편의 기능을 제공하는데, HTTP 응답 메시지 생성으로는 - HTTP 응답 코드 지정, - 헤더를 생성 - 바디를 생성 이렇게 3가지를 한다 편의 기능 제공으로는 - Content-Type - 쿠키 - Redirect 를 지원한다. package helloMVC.servlet.basic.response; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.. 2023. 5. 18.
728x90
반응형