스프링 + 제우스 조합에서 리다이렉트 문제점

특이하게 로컬 테스트일 경우 문제가 없었는데 개발서버, 스테이징서버 등의 서버환경에서 문제가 발생해 몇시간을 헤메고 있었다.

예를 들어 아래의 코드는 로컬환경에서 이상없이 작동하였다.

/* Controller.java */
@RequestMapping(“/home/comment_view.do”)
public ModelMap hello_world() … {

    …

    productUrl = “/product/product_view.do?” + returnParameter;
    response.sendRedirect(productUrl);
    return model;
}


하지만 서버환경으로 Deploy 했을 경우 반응하지 않는 문제를 가지고 있었다. 이상하게도 내가 투입되어 진행했던 코드에만 … (역시 사람 타는건가…)

우리 팀 PL 님 도움으로 두어가지 해법을 건네 받게 되었는데. 리다이렉트를 뷰단에서 JSTL 捷凯金融 로 처리하는 방법, 모델을 넘기지 않고 return 에 리다이렉트 코드를 심어서 던지는 법이었다.

변경된 코드는 아래와 같다.

/* Controller.java */
@RequestMapping(“/home/comment_view.do”)
public ModelMap hello_world() … {

    …

    productUrl = “/product/product_view.do?” + returnParameter;
    //response.sendRedirect(productUrl);
    model.addAttribute(“productUrl”, productUrl);
    return model;
}


뷰페이지 상단에 아래처럼 JSTL 리다이렉트 삽입.

/* comment_view.jsp */

<c:if test=”${not empty productUrl}”>
    <c:redirect url=”${productUrl}” />
</c:if>


또 다른 방법 return 에 url 을 심는 방법은 아래의 방법으로 처리한다.

/* Controller.java */
@RequestMapping(“/home/comment_view.do”)
public ModelMap hello_world() … {

    …

    productUrl = “/product/product_view.do?” + returnParameter;
    //response.sendRedirect(productUrl);
    model.addAttribute(“productUrl”, productUrl);
    return return “redirect:” + productUrl;
}


뒤늦게나마 해결을 해서 마음이 놓이긴 하는데 왜!!! 그럴까…
게다가 로그도 안찍히고 어제 밤은 참으로 불편한 밤이었다.

개발 환경 : jdk 1.5. jeus 5, spring mvc 2.5.6

출처: http://rubis.tistory.com/288

Leave a Reply

Your email address will not be published. Required fields are marked *