반응형
FlashAttribute
RedirectAttributes와 비슷하지만 FlashAttribute는 요청을 보낼 때 session에 넣고 넘겨준다. 그리고 바로 다음 요청이 처리되면 session에서 지워진다. 따라서 일회성이다.
사용법
@PostMapping("/events/form/limit") public String eventsFormLimitSubmit(@Validated @ModelAttribute Event event, BindingResult bindingResult, SessionStatus sessionStatus, RedirectAttributes attributes) { if(bindingResult.hasErrors()) { return "/events/form-limit"; } sessionStatus.setComplete(); // RedirectAttributes안에 addFlashAttribute를 사용한다. attributes.addFlashAttribute("newEvent",event); return "redirect:/events/list"; }
@ModelAttribute("newEvent") Event event
를 통하여 받아도 되지만 FlashAttr의 경우 자동으로 Model에 넣어준다.Event newEvent = (Event) model.asMap().get("newEvent");
Object로 넘어오기때문에 (Event)로 타입을 컨버전해주어야한다.
RedirectAttributes
는 String으로 바뀔 수 있는 값만 넣어줄 수 있었지만FlashAttribute
는 임의의 객체를 저장할 수도 있다.
RedirectAttributes
는 URI 쿼리 파라미터로 데이터를 담아 넘기지만FlashAttribute
는 session에 담아 넘기므로 URI에 데이터가 노출되지않는다.
반응형
'Web > Spring' 카테고리의 다른 글
[Spring MVC] ResponseEntity를 사용해서 파일 다운로드 구현 (0) | 2020.01.23 |
---|---|
[Spring MVC] MultipartFile로 파일 업로드하기 (0) | 2020.01.23 |
[Spring MVC] RedirectAttributes 사용하기 (0) | 2020.01.21 |
[Spring MVC] @SessionAttribute 사용하기 ('s'가 안 붙은건 안 비밀) (0) | 2020.01.21 |
[Spring MVC] @SessionAttributes를 사용하여 멀티 폼 서브밋 구현 (0) | 2020.01.21 |