Spring MVC+GWT:重定向问题
我正在开发的应用程序中使用带Spring注释的MVC框架 以下是我面临的问题: 我有一个控制器,它在一篇帖子之后执行重定向:Spring MVC+GWT:重定向问题,spring,model-view-controller,gwt,redirect,annotations,Spring,Model View Controller,Gwt,Redirect,Annotations,我正在开发的应用程序中使用带Spring注释的MVC框架 以下是我面临的问题: 我有一个控制器,它在一篇帖子之后执行重定向: @RequestMapping(value = "/emdm-viewer-redirect.do", method = RequestMethod.POST) public ModelAndView getMetricKeysAndRedirect(@RequestParam Object jsonObject, Model model) { Mode
@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;
}
我有另一个映射到URL mdm-viewer的控制器。请执行上述重定向URL:
@RequestMapping(value = "/mdm-viewer.do", method = RequestMethod.GET)
public String getMDMViewer(Model model) {
return "mdmViewer"; //returns a mdmViewer.jsp
}
请注意,mdmviewer.jsp是位于类路径中的GWT入口点。
我打开了firebug窗口,它告诉我对mdm-viewer.do发出了GET请求,但它给了我一个空白响应。事实上,它不会重定向到新的jsp,而是停留在发出POST请求的同一页面上。
但是,如果我复制firebug URL并在浏览器的新窗口中打开它,我会看到预期的结果
你知道我做错了什么吗?我试着用谷歌搜索了很多次,但在任何地方都找不到类似的问题。最终,我使用 @应答器 在我的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", "");
}
}
firebug是否在第一个请求中向您显示302响应代码?否。Firebug显示请求已成功。但是,Firebug中的响应选项卡都是空白的。在我所有的浏览器Chrome、IE和Firefox上都显示相同的结果,这意味着你没有被重定向。你能试试这个吗重定向:mdm-viewer.do不带/