0

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

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

Spring 正在检测字符串,通过 viewresolver 找到 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,它工作正常。我能发现的唯一区别是,在这种情况下,客户端不是来自对话......

对其他领域有什么想法吗?关于其他片段的建议要在此处添加?

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

4

1 回答 1

0

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

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

感谢您的评论。

于 2013-06-06T18:23:38.477 回答