使用Spring MVC从jQuery对话框重定向的问题



这是一个非常简单的场景,但是我卡住了…

我弹出一个jQuery UI对话框,用户输入一些数据。我正在服务器上处理该数据,用它设置一些会话数据属性,然后返回一个String值,该值与我的一个JSP文件的名称相匹配。

Spring正在检测字符串,通过视图解析器找到JSP,并传回JSP的内容…但是没有加载

这是视图解析器,但我不认为这是问题…

<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

…这里是控制器重定向:

@RequestMapping(value = "/selectSystem", method = RequestMethod.GET)
public String selectSystem(
        @RequestParam("systemid") Integer systemid,
        HttpSession session) {      
    session.setAttribute("currentSystem", systemid);
    return "system_main";
}

我一直在Chrome的调试工具中观察这个问题。对话框发送正确的参数,在$之后关闭。post完成后,服务器返回我期望的带有jqGrid的JSP。然而,页面仍然在我开始的地方。

对话框的AJAX将参数发送给服务器,并关闭:

buttons: {
    Select: function () {
        $.post('selectSystem.html',"systemid="+jQuery('#systemsReviewGrid').jqGrid('getGridParam', 'selrow'));
        dialog.remove();
    }
}, 
我测试没有关闭我的对话框,以防内容在我关闭它之前就出现了,但是没有改变。

浏览器显示响应数据....中的内容那么为什么不是渲染呢?更令人抓狂的是,我在同一个控制器的另一个区域重定向到这个完全相同的JSP,它工作得很好。我能发现的唯一区别是,在这种情况下,客户端不是来自一个对话框…

还有其他值得关注的地方吗?在这里添加其他片段的建议?

[EDIT:添加一些代码描述以帮助提供上下文]

问题是没有对响应做任何事情。在我的无知中,我认为浏览器会解释完整的DOM响应并呈现页面。它需要像href或表单提交一样的页面移位,以使新页面正确呈现。

我最终选择对URL中的参数使用window.location.href调用,然后由Spring控制器在处理参数后返回JSP。像冠军一样工作。

谢谢你的评论

最新更新