컨트롤러를 처리할 때 가끔 다른 경로를 호출 해야 하는 경우가 생기는 데 

이 때 Spring에서는 'redirect:'를 지원해주고 있습니다.


리다이렉트를 하는 경우 RedirectAttributes라는 클래스를 파라미터로 같이 사용하게 되면 리다이렉트 시점에 원하는 데이터를 임시로

추가해서 넘기는 작업이 가능합니다.


바로 예제


@Controller
public class Controller {
private static final Logger logger =
LoggerFactory.getLogger(Controller.class);
@RequestMapping("/doE") // /doE이 호출 됬을 경우
public String doE(RedirectAttributes rttr) { // RedirectAttributes를 통해 rttr에 상태를 저장한다
// redirect 시점에 원하는 데이터를 임시로 추가해서 넘기는 작업이 가능하다.
logger.info("doE called but redirect to /doF"); // info 출력
rttr.addFlashAttribute("msg", "This is the Message!! with redirected"); // rttr에 추가로 msg까지 담아준다
return "redirect:/doF"; // 그리고 그 값들을 가지고 doF로 넘긴다
}
@RequestMapping("/doF")
public void doF(@ModelAttribute String msg) {
logger.info("doF called"+msg); // 가지고 온 msg를 출력한다
}
}
}

RedirectAttributes를 이용하는 경우는 URI에 보이지 않게 데이터를 전달 해줍니다.