Spring
Spring redirect POST 전송 RedirectAttributes Parameter
아이티.파머
2017. 5. 31. 11:09
반응형
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);
}
}
반응형