一尘不染

Java搜寻引荐来源

jsp

我正在使用Struts和Java。问题是我的页面上有一些结果。用户可以单击一个项目并进行编辑。我希望在编辑用户后能够返回到结果。返回没有中断,但是如果他提交更新表格,他将不得不单击两次,我认为这可能有问题。

我已经尝试过了,header("Referer")但这在Internet Explorer中不起作用。

我正在尝试实施解决方案。有任何想法吗?我的想法是保存网址并在该网址的ID周围移动。当我想返回时,从ID获取网址。将其存储在会话中不是解决方案,因为用户可能已打开多个窗口。


阅读 222

收藏
2020-06-10

共1个答案

一尘不染

最好的方法是将其作为 请求 参数传递。在编辑链接或按钮上,只需将当前URL传递为请求参数即可。这是带有链接的示例:

<a href="/login?from=${pageContext.request.requestURI}">edit</a>

或者, 如果它是提交表单的按钮,则以相同的形式将其作为隐藏的输入值传递:

<input type="hidden" name="from" value="${pageContext.request.requestURI}">

在带有编辑表单的页面中,将其作为表单的隐藏输入值传输到后续请求:

<input type="hidden" name="from" value="${param.from}">

在操作方法中,只需在完成操作后重定向到该URL。由于我不使用Struts,因此无法提供详细的Struts示例,但是这是使用“普通香草”
Servlet的方法,因此必须能够将其移植到Struts方法中:

response.sendRedirect(request.getParameter("from"));
2020-06-10