2011-10-04 3 views
0

저는 개발중인 앱에서 Spring 어노테이션이 적용된 MVC 프레임 워크를 사용하고 있습니다. 후 후 리디렉션을 수행 내가 컨트롤러가스프링 MVC + GWT : 리디렉션 문제

  1. , : 다음

    의 I 직면하고 문제

    @RequestMapping(value = "/emdm-viewer-redirect.do", method = RequestMethod.POST) 
    public ModelAndView getMetricKeysAndRedirect(@RequestParam Object jsonObject, Model model) 
    { 
         ModelAndView modelAndView = new ModelAndView("redirect:/mdm-viewer.do"); 
         ..... 
         ..... 
         ....//make some service calls and populate value1 
         ... 
         modelAndView.addobject("param1", value1); 
         return modelAndView; 
    } 
    
  2. 나는 URL의 mdm-에 매핑되는 다른 컨트롤러가 viewer.do (위에 언급 된 리디렉션 URL) :

    @RequestMapping(value = "/mdm-viewer.do", method = RequestMethod.GET) 
    public String getMDMViewer(Model model) { 
         return "mdmViewer";  //returns a mdmViewer.jsp 
    } 
    

mdmviewer.jsp는 classpath에있는 GWT 엔트리 포인트입니다. mdm-viewer.do에 대한 GET 요청이 있음을 알려주는 방화 광구 창이 열렸지 만 공백 응답을줍니다. 사실, 그것은 새로운 JSP로 리다이렉트하지 않고 POST 요청이 만들어진 곳과 같은 페이지에 머문다. 그러나 방화 광 URL을 복사하여 브라우저의 새 창에서 열면 예상되는 결과가 표시됩니다.

내가 여기서 잘못하고있는 아이디어가 있습니까? Google에 많이 시도했지만 어디서나 유사한 문제를 찾을 수 없습니다.

+0

이 불을 지르고는 당신을 보여줍니다합니까 수행 할 response.getText() 출력을 사용 첫 번째 요청에 302 응답 코드가 있습니까? –

+0

아니요. Firebug는 요청이 성공적이었다고 표시합니다. 그러나 Firebug의 응답 탭은 모두 비어 있습니다. 그리고 모든 브라우저 (Chrome, IE 및 Firefox)에서 동일한 결과를 보여줍니다. – kunalk83

+0

그것은 당신이 리디렉션되지 않았 음을 의미합니다. 이거해볼 수 있니? : "리디렉션 : mdm-viewer.do"/ " –

답변

0

결국, 나는 @ResponseBody 그리고 내 GWT 모듈을 사용하여 POST 방식에서 다시의 ModelAndView를 반환, 나는

@Override 
    public void onResponseReceived(Request request, Response response) { 
      if (200 == response.getStatusCode()) { 
      JSONObject jsonObject = (JSONObject) JSONParser.parse(response.getText()); 
      String viewName = jsonObject.get("viewName").isString().stringValue(); 
      JSONObject jsonParams = jsonObject.get("model").isObject(); 
      Set<String> chartKeys = jsonParams.keySet(); 
      String redirectURL = viewName + "?"; 
      for (String keyString : chartKeys) { 
        redirectURL = redirectURL + keyString + "=" + jsonParams.get(keyString).isString().stringValue() + "&"; 
       } 
      Window.open(GWT.getHostPageBaseURL() + redirectURL, "_self", ""); 
      } 
    }