Spring MVC + GWT: проблема с перенаправлением - PullRequest
0 голосов
/ 04 октября 2011

Я использую аннотированную среду MVC в приложении, которое я разрабатываю.

Ниже приводится проблема, с которой я сталкиваюсь:

  1. У меня есть контроллер, который выполняетredirect, после POST:

    @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 является точкой входа GWT, которая находится в classpath.У меня открыто окно firebug, в котором говорится, что был сделан запрос GET для mdm-viewer.do, но он дает пустой ответ.Фактически, он не перенаправляет на новый jsp и остается на той же странице, откуда был сделан запрос POST.Однако, если я скопирую URL-адрес firebug и открою его в новом окне моего браузера, я увижу ожидаемые результаты.

Есть идеи, что я здесь не так делаю?Пытался много гуглить, но нигде не могу найти похожую проблему.

1 Ответ

0 голосов
/ 05 октября 2011

В конце концов я вернул ModelAndView обратно из метода POST, используя @ResponseBody И в моем модуле GWT я использовал вывод response.getText (), чтобы сделать

    @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", "");
            }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...