spring-mvc-RedirectAttributes

Related POST

intro

  • 원래 잘 사용하고 있는 어플리케이션에 변경 요청 사항이 생김
  • addAttribute로 끝내는 건줄 알고 까봤더니 마지막 view가 “redirect”접두어로 리다이렉트
  • Redirect는 이전 요청이 끊어지고 새로운 GET 요청 시작
  • 따라서 Redirect 실행 이전의 모델 데이터는 소멸하므로 모델전달은 의미가 없음

RedirectAttributes

  • 스프링이 제공
  • 모든 플래시 속성을 세션에 복사
  • 리다이렉션 이후 저장된 플래시 속성을 세션에서 모델로 이동

RedirectAttributes의 2 메서드

  • addAttribute
  • addFlashAttribute
  • 차이점
    • addAttribute로 전달한 값은 GET의 URL의 쿼리스트링으로 붙으며 리프레시해도 유지됨
    • addFlashAttribute 전달값은 URL에 노출되지 않으며 리프레시 할 경우 데이터가 소멸(1회성)

마무리

  • MockMvc에서MockMvcResultMatchers.flash()로 플래시를 받아와서 플래시 속성에 접근 가능
공유하기