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

이 때 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에 보이지 않게 데이터를 전달 해줍니다.