2016년 7월 17일 일요일

Flash Attribute(RedirectAttributes, FlashMap) - 스프링실무교육학원

Flash Attribute(RedirectAttributes, FlashMap) - 스프링실무교육학원
<!--[if !supportLists]-->n  <!--[endif]-->MVC기반의 일반 웹 어플리케이션에서 서버 측으로 POST형태로 데이터를 전송하게 되면 스프링 컨트롤러 에서는 사용자 요청에서 데이터를 꺼내 데이터베이스에 저장하는 등의 일을 한
다.

<!--[if !supportLists]-->n  <!--[endif]-->그런 다음 사용자에게 성공한 상태정보를 보여주기 위해 JSP 페이지 등을 포워딩 하게 되고 이 경우 사용자가 F5키 등을 눌러 POST 방식의 요청을 여러 번 보내게 되면 문제가 발생할 수도 있다.

<!--[if !supportLists]-->n  <!--[endif]-->이러한 문제점을 보완하기 위해 Spring MVC3.1 이상에서RedirectAttributes, FlashMap을 이용하여 POST/Redirect/GET 패턴을 보완하기 위한 방법이 나왔는데 이 패턴을 이용하게 되면 F5 키를 눌러 리로드(multiple form submit)하는 경우 POST로 서버 측으로 서브밋을 하는 것이 아니라 GET방식 형태로 뜬 JSP만 다시 리로드되게 할 수 있다

<!--[if !supportLists]-->n  <!--[endif]-->물론 이때 RedirectAttributes를 사용하여 데이터를 저장한다면 Redirect된 후 즉시 사라지게 되고 사용자가 F5등을 눌러 리로드 하더라도 다시 서버로 다시 submit되어 저장되지 않게 할 수 있다.

<!--[if !supportLists]-->n  <!--[endif]-->FlashMap, RedirectAttributes등을 이용하면 리다이렉트시 값의 전달을  쿼리스트링을 이용하지 않고 임시 플래시 메모리를 이용하여 보이지 않게 저장하고사용 후  삭제되도록 할 수 있다즉 리다이렉트시 데이터 숨겨 넘기는 방법을 제공한다.

<!--[if !supportLists]-->n  <!--[endif]-->FlashMap flash attribute등을 저장 할 수 있고, FlashMapManager를 이용하여  FlashMap 인스턴스등을 저장삭제 등을 할 수 있다.
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
<!--[if !supportLists]-->n  <!--[endif]-->Spring MVC에서 FlashAttribute를 사용하기 위해서는 스프링3.1 이상에서만 가능하고<mvc:annotation-driven /> 태그를 설정파일에 기술해야 한다.

첨부파일에서 예제 확인 하세요.

댓글 없음:

댓글 쓰기