Spring
스프링 - Redirect 처리 관련 정보
마루설아
2025. 6. 3. 14:33
웹 브라우저와 컨트롤러의 데이터 처리방식은 다음과 같다.
내가 구현한 컨트롤러의 리다이렉트 호출 부분 소스를 참조해보자.
...
@PostMapping("/register")
public String register(BoardVO board, RedirectAttributes rttr) {
log.info("register : " + board);
service.register(board);
rttr.addFlashAttribute("result", board.getBno());
return "redirect:/board/list";
}
...
컨트롤러의 register()에서 "redirect:/board/list"를 전송하고
브라우저는 /board/list로 이동하게 되는 방식이다.
이처럼 리다이렉트를 사용하지 않는다면
사용자는 '새로고침'을 통해 동일한 내용을 계속 서버에 등록할 수 있다.
요즘 브라우저는 이런 경고창을 보여주기는 하지만 근본적으로 차단하지는 않는다고 한다.
그리고 위 소스코드에 RedirectAttributes 타입의 객체와 addFlashAttribute() 함수가 있다.
이는 일회성 데이터를 전달할 수 있어 단 한번만 사용 할 수 있도록 지정할 수 있다.
이 RedirectAttributes를 이용하여 모달창을 구현할 수 있는 것이다.
(이후 모달창 소스는 깃허브 참조)