본문 바로가기
Spring

redirect / forward Parameter 전체

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

가끔 전체 적인 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 하나식 열거 하여 추가한다.

반응형