리디렉션을 수행할 때 한 컨트롤러 메서드에서 다른 컨트롤러 메서드로 Attribute(속성) 을 전달할 때 이용하는 스프링 프레임워크의 인터페이스
주문이 완료된 후 주문 결과 상세페이지로 리다이렉팅하고 그 결과를 보여주고 싶을 때 이용할 수 있다.
주문 처리가 끝났을 때 생성된 주문번호를 리다이렉트 페이지쪽으로 넘겨줄 수 있다.
redirectAttributes 를 이용하여 데이터를 넘길 수 있는 2가지 메서드이다.
브라우저의 주소창에 보이게 URL 에 추가하여 정보를 넘긴다.
주소창에 보이는 만큼 짧은 정보, 이용자에게 노출되어도 상관 없는 정보를 넘기는데에 주로 사용한다.
쿼리 파라미터가 있는 URL 에 접근하는 한 여러 요청에 사용이 가능하다.
/targetURL?key=value 형식으로 전달된다.
세션에 저장되고 오직 다음 요청에서만 접근 가능하다.
임시로 저장하는 방식이다.
세션에 저장되어 사용된 뒤에 자동으로 삭제된다.
검증 결과, 성공 실패 여부 메세지와 같이 임시로 사용되는 데이터를 다루는데 적합하다.
또 주소 창에 표기되지 않으므로 addAttribute() 보다 폐쇄적이다.
addAttribute() 로 넘겼는지 addFlashAttribute() 로 넘겼는지에 따라 접근 방식이 달라진다.
addAttribute() 로 넘겼다면, URL 로 넘어온만큼 기존처럼 @RequestParam 애노테이션을 이용하면 된다.
addFlashAttribute() 로 넘겼다면, @ModelAttribute 애노테이션을 이용하면 된다.
아니면 그냥 Model 오브젝트를 파라미터에서 이용하고 model.getAttribute() 를 이용해도 된다.