java/스프링공부

RedirectAttributes란

Dev갱이 2020. 6. 25. 12:04
728x90

컨트롤에서 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개이상 쓸 경우, 데이터는 소멸한다. 

따라서 맵을 이용하여 한번에 값전달해야한다.

 

728x90