본문 바로가기
Spring/spring mvc

상품등록 폼에 PRG적용

by 킹차니 2021. 6. 30.
김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다.
https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C

 

 

 

현재 상품등록 폼엔 치명적인 문제가 있습니다.

상품 등록을 하고 새로고침을 누르면 위와 같은 경고창이 뜨고, 무시하고 "계속"을 누르면 상품 목록에 아래와 같은 결과가 나온다.(새로고침 3번 누름)

새로고침은 마지막에 남아있는 http요청을 다시 전송하기 때문에 발생하는 문제입니다.

(한번 등록하려 했던 '안경'이 새로고침을 누른만큼 추가로 등록되는 문제)

 

 

 

하여 아래에서 제시한 방법으로 해결할 수 있습니다.

PRG 적용

redirect적용

redirect서버가 클라이언트의 다음 GET을 강제로 적용해버리는 것이다.

위처럼 redirect:/basic/items/item.getId()를 하면 클라이언트가 해당 url을 요청한 것 처럼 작동한다.

 

 

 


 

RedirectAttributes

 

위의 redirect url은 예를 들면  /basic/items/2?status=true 와 같이 된다.

 

 

저장에 성공했다는 메세지도 띄우기 위해 아이템상세조회 폼에 다음의 html도 추가한다.

 

 

 

상픔등록을하면

 

상세조회 폼으로 리다이렉트되고,  등록 성공 메시지가 뜬다!