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할때 따로 써줘야함