관리 메뉴

IT.FARMER

redirect / forward Parameter 전체 본문

Spring

redirect / forward Parameter 전체

아이티.파머 2017. 5. 31. 10:58
반응형

가끔 전체 적인 parameter를 redirect 파라미터로 보내고 싶은경우가 있다.

이런경우엔 코드가 잘못됬다고 볼수도 있지만. 급한? 처리를 해야할때... 

RedirectAttributes에 모두 담아 보내버리자.

 

Map<String, Object> attributes = new HashMap<>();

Enumeration<?> params = request.getParameterNames();

while (params.hasMoreElements()){

    String name = (String)params.nextElement();

    attributes.put(name, request.getParameter(name));

}



redirectAttributes.addAllAttributes(attributes);

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

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

 

 

위 경우엔 기본 request parameter와 추가된 parameter를 같이 보낼수 있다.

있는 그대로 보내고 싶은경우 

 

RequestDispatcher dispatcher = request.getRequestDispatcher("/admin/cashReceipt/requestCashReceipt");

dispatcher.forward(request, response);

 

request.getParameterMap()에 강제로 추가 하고 싶었으나,  HTTP 정책에 의해 추가불가능한 MAP구조라(변경불가)  다음과 같이 추가해서 보내는것은 불가능하다.

 

String[] values =  {reservationHistory.getReservationMngNo().toString()};

request.getParameterMap().put("reservationMngNo", values);

 

결론 

RedirectAttributesReqiestParameter 하나식 열거 하여 추가한다.

반응형