back/Spring Framework
redirect, forward 차이 및 redirect 시 attribute 전달 방법
펭귄대장
2020. 1. 6. 14:44
[ redirect 시 attribute 전달하는방법 ]
redirectAttributes.addFlashAttribute 사용
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@RequestMapping(value="/save.do")
public String save(HttpServletRequest request, RedirectAttributes redirectAttributes, paramVO vo) throws Exception {
...
redirectAttributes.addFlashAttribute("param", param);
return "redirect:/result.do";
}
@RequestMapping(value="/result.do")
public ModelAndView result(HttpServletRequest request, @ModelAttribute("paramVO") paramVO vo) throws Exception {
ModelAndView mav = new ModelAndView("bmp/Result");
...
logger.info(vo.getName());
return mav;
}
|
cs |
※ addFlashAttribute 와 addAttribute 차이
addAttribute 는 단수개의 파라미터들 (내부적으로 redirect url 뒤에 붙여서(get과 같이) 나가는 방식)
addFlashAttribute 복수개의 파라미터(map , vo 등)
[ redirect, forward 차이 ]
redirect
request, response 를 새로 생성, 새로운 호출 (뒤로가기 가능(A에서 B로 리다이렉트시 B에서 뒤로가기로 A 이동 가능))
ex) 고객센터에 전화를 걸었더니 다른 번호로 연결시켜주어 새로운 곳에 문의사항을 다시 전달해야 하는 상황
forward
request, response 를 공유, 기존 호출에 이어서 진행 (뒤로가기 불가(A에서 B로 포워딩시 B에서 뒤로가기로 A를 부른 C로 이동(전전 화면)))
ex) 고객센터에 전화를 걸었더니 담당자가 잘 모르겠다며 옆의 직원에게 상황을 전달하며 수화기를 넘긴 상황
반응형