Spring(전자정부 프레임 워크)
Spring(RedirectAttributes)
행복하게사는게꿈
2020. 7. 16. 13:30
Spring(RedirectAttributes)
컨트롤러간에 정보를 주고 받을 때 사용
String 타입뿐만 아니라 VO 등의 Object타입도 주고 받을 수 있음
@RequestMapping("insertMemberInfo") /*(MemberVO memberInfo :도메인 오브젝트*/
public String insertMember(MemberVO memberInfo, @RequestBody String totalParams, RedirectAttributes redirectAttributes) throws Exception{
System.out.println("@RequestBody : "+ totalParams);
redirectAttributes.addFlashAttribute("message", "회원가입이 완료되었습니다.아아"); // controller 끼리 정보를 공유할때String 뿐만아니라 객체도 다 가능
return "redirect:/user/join/loginForm.do";
}
아규먼트로 RedirectAttributes 를 인스턴스화해서
.addFalshAttribute() 메소드를 사용해서 키, 값으로 값을 넣어준다.
그리고 받는 loginForm.do 에 매핑되는 메소드에서 redirectAttributes에 넣은 값을 빼서 쓸 수 있다.
@RequestMapping("loginForm")
public void loginForm(HttpServletRequest request){
//RedirectAttribute를 활용해 전송되는 값 취득
Map<String, ?> paramMap = RequestContextUtils.getInputFlashMap(request);
if(paramMap !=null){
String message = (String) paramMap.get("message");
System.out.println("RedirectAttribute 전달된 취득값 : " + message);
}
}
단, 앞에 말했듯 이건 컨트롤러간에 값을 주고 받는 것이기 때문에 jsp에 넘겨주려면 return할때 따로 써줘야함