[ Java ] Spring redirect POST방식

2020. 4. 8. 18:05언어/JAVA

728x90
반응형
SMALL

Spring에서 redirect 시 파라미터를 보내주기 위해 redirect.addAttribute를 사용할 수 있지만

이것은 get 방식입니다. post 방식은 다음과 같습니다.

 

aaa 가 redirect 요청을 하는 부분을 보면 map 형태로 addFlashAttribute 함수를 통해 파라미터를 담아주면

ddd에서 기존에 쓰던 params에다 담아서 쓸 수 있습니다.

 

다만  addAttribute는 계속해서 값이 유지되지만 addFlashAttribute는 이름에 걸맞게 일회성이라 새로 고침을 하면 값이 날아갑니다.

@RequestMapping(value="/a/b/c.do")
public String aaa(@RequestParam Map<String, String> params,
	RedirectAttributes redirect) throws Exception{
 	
    ...
    
    Map<String, String> map = new HashMap<String, String>();
    map.put("id", params.get("id"));
    map.put("name", params.get("name"));
    redirect.addFlashAttribute("map", map);
    
    return "redirect:/d/e/f.do";
}

@RequestMapping(value="/d/e/f.do")
public String ddd(@RequestParam Map<String, String> params,
	HttpServletRequest request) throws Exception{

    Map<String, ?> flashMap = RequestContextUtils.getInputFlashMap(request);
    if(flashMap != null){
    	params=(Map<String, String>) flashMap.get("map");
    }
    
    ...
    
    return "/d/e/fff";
}

 

728x90
반응형