반응형
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);
}
}
반응형
'Spring' 카테고리의 다른 글
Spring Muiltiple DataSource (0) | 2021.04.29 |
---|---|
ehcache attribute (0) | 2017.07.11 |
redirect / forward Parameter 전체 (0) | 2017.05.31 |
Spring Boot hot swapping(springloaded debuging) 방법 (0) | 2016.09.01 |
Spring Transaction is already completed - do not call commit or rollback more than once per transaction (0) | 2016.03.07 |