본문 바로가기
Spring

Spring redirect POST 전송 RedirectAttributes Parameter

by 아이티.파머 2017. 5. 31.
반응형

RedirectAttributes 를 이용하면 redirect 시 parameter를 url?parameter1=data  의 형태를 대체 할수있다.

코드도 간결해보이고 가독성또한 좋아 보인다.

 

이대 parameter를 숨기고자 하는 경우가 있는데 그때 사용 할 수 있는것이 

 

redirectAttributes.addFlashAttribute(attributeValue) 이다.  문자 그대로 Flash  이며 한번 호출후 메모리에서 삭제 된다. 새로 고침을 누르면 값은 사라짐으로, 재사용할수 없는 것이다.

 

 

redirectAttributes.addFlashAttribute("reservationMngNo", reservationHistory.getReservationMngNo());

return "redirect:/admin/cashReceipt/requestCashReceipt";

 

 

리디이렉트에 값을 add 후 값을 꺼내 올때는 일반적은 request.getParameter로 값을 가져올수 없다.

RequestContextUtils.getInputFlashMap(request);  유틸을 이용하여 사용한다.

 

 

/**

 * 사이드 메뉴 관리 공통 파라미터....

 * @param sideMenuCode

 * @param modelMap

 */

@ModelAttribute

public void menuControl(@RequestParam(required=false) MenuCode sideMenuCode , HttpServletRequest request,  ModelMap modelMap) {



 Map<String,? > flashMap  = RequestContextUtils.getInputFlashMap(request);

 if(flashMap != null ) {

 System.out.println(flashMap.get("sideMenuCode"));

 modelMap.put("SIDE_MENU_CODE", flashMap.get("sideMenuCode"));

 } else {

 modelMap.put("SIDE_MENU_CODE", sideMenuCode);

 } 

}
반응형