RedirectAttributes란
컨트롤에서 RedirecAttributes라는게 있다
예시)
Model model 객체는 이해가 되는데
RedirectAttributes rttr 객체를 만들고
그걸 return "redirect:/board/list" 여기서 redirect:는 무엇인지 이해가 안된다.
[해석]
우선은 왜 쓰는지에서부터 생각을 해보았는데
service는
@Inject BoardService service;
service.delete(boardVO.getBno()); //delete메소드를 이용해서 그 해당 글을 삭제 할텐데
scri객체는 검색어 객체
즉, getPage 현재 페이지 getPerPageNum끝페이지 getSearchType 검색타입 getKeyword 검색어
삭제 했을때 list페이지로 돌아가는데 이때 내가 검색했던 내용이나 그 페이지 그대로 유지하고 싶을때
저렇게 RedirectAttributes를 쓴다.
저렇게 rttr.addAttribute함으로써
return "redirect:/board/list" 하게 된다면
localhost/board/list?board/list?page=1&perPageNum=10&searchType=&keyword=
이런식으로 검색했던 내용을 그대로 url에 유지할 수 있다.
그리고,
addAttribute와 addFlashAttribute의 차이점
rttr.addAttribute로 전달한 값은 url뒤에 붙으며,
리프레시해도 데이터가 유지된다.
rttr.addFlashAttribute로 전달한 값은 url뒤에 붙지 않는다.
일회성이라 리프레시할 경우 데이터가 소멸한다.
또한 2개이상 쓸 경우, 데이터는 소멸한다.
따라서 맵을 이용하여 한번에 값전달해야한다.