如何根据其他页面操作自动重新加载jsp

时间:2015-09-13 06:52:48

标签: java spring jsp

我有一种我无法处理的情况,这就是为什么需要你的帮助。 我有一个jsp页面(在下面的图片中提到A),其中有很多行,每个行都可以编辑。 在A jsp页面的末尾,有一个打印页面数据的选项。 现在,如果某个实体点击编辑链接/按钮,则另一个页面将打开包含该特定行的数据,用户可以修改第二页中的数据(i,e B)。 现在,我想,只要用户保存B页面,就应该自动刷新页面以提供更新的数据进行打印。

请指导我如何实现这一目标。我在Java应用程序中使用Spring MVC框架。 Graphical Example

2 个答案:

答案 0 :(得分:0)

Spring MVC满足您要求的方式是:

  • 页面A中的Edit按钮应该是调用页面B的链接和要编辑的行的ID,例如<a href="$pageBUrl?id=$rowId" class="editButton">Edit</a>
  • 页面B中的SaveAndClose按钮应该是一个提交按钮,用于将编辑后的值发布到控制器方法。在服务器端处理之后,控制器方法应该重定向到页面A.作为副作用,你使用PostRedirectGet pattern来避免丑陋的你想再发送一次...... ?“

    @RequestMapping(path = "...", method = RequestMethod.POST)
    public String saveAndClose(...) {
        ...
        return "redirect:/path/to/pageA";
    }
    

当然这会在同一窗口中显示所有页面。

如果你想在页面B的Save & Close上重新显示包含pageA的窗口,仍然允许服务器知道保存,你应该重定向到一个只包含javascript代码的特殊页面(比如pageC)要求浏览器重新显示pageA。您可以在隐藏字段中传递包含pageA的窗口的名称,也可以将确定为Web应用程序的程序员,您知道它应该在何处。

答案 1 :(得分:0)

如果您不想使用ajax,还有一种方法。

在页面A中定义一个javascript函数refreshPageA()。在此功能中添加页面刷新逻辑。 当你点击'保存&amp;关闭页面B中的“按钮”将数据保存在服务器中并转发到普通的jsp。在这个JSP中声明一个onload处理程序。在onload处理程序中添加以下代码

opener.refreshPageA(); window.close() 这将刷新pageA和关闭页面B窗口