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