스프링 redirect 파라미터 처리
스프링에서 redirect를 사용할때 파라미터 값을 넘겨야 할 경우가 있다.
예를들어
xxx.do?id=mm&name=lee
이렇게 하면 값은 가지만...
url에 데이터값이 다 노출되기 때문에 먼가 꺼림직하다.
그래서 데이터를 숨기면서 다른 controller로 보낼 방법을 검색하였다.
방법 1.
RedirectAttributes 사용하기
인터페이스는 org.springframework.web.servlet.mvc.support.RedirectAttributes
값 전달하기
@RequestMapping(value="/test.do",method=RequestMethod.POST)
public String test(HttpServletRequest req,@RequestParam Map<string,object>params,
ModelMap modelMap,RedirectAttributes redirectAttributes)throws Exception{
params.put("result", result);
redirectAttributes.addFlashAttribute("params", params); //전달할 값
return "redirect:test.do";
값 받기
Map<string, ?> flashMap = RequestContextUtils.getInputFlashMap(req);
if(flashMap !=null) {
// flashMap.get("params") 으로 값 받아서 사용
params=(Map<string, object>) flashMap.get("params");
}
방법 2.
FlashMap 사용하기
인터페이스는 org.springframework.web.servlet.FlashMap
값 전달하기
//FlashMap에 전달할 값을 저장한다.
FlashMap fm = RequestContextUtils.getOutputFlashMap(req);
fm.put("test", "test");
return "redirect:/test.do";
//여기서 redirect url은 직접 기재하는것을 추천합니다.
//변수명으로 호출했을때 안되는 경우를 접했기 때문에...
값 받기
//FlashMap에 저장되어 전달된 값을 가져온다.
Map<String, ?> flashMap = RequestContextUtils.getInputFlashMap(req);
if(flashMap !=null) {
modelMap.put("test", (String)flashMap.get("test"));
}
Author And Source
이 문제에 관하여(스프링 redirect 파라미터 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jakezo/스프링-redirect-파라미터-처리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)