2013-07-21 233 views
0

我有两个jsp页面:page1.jsp,其中有一个表单和page2.jsp,它显示一条消息来告诉用户记录插入是否发生。防止重新提交表单和struts

如果表单成功提交并且用户刷新页面2,则会发生另一次插入。

我不会使用会话变量,并在页面2中设置请求属性不能解决问题(它似乎不起作用)。

+1

你应该使用post-redirect-get模式。 –

+0

@DaveNewton:谢谢,我如何在struts 1中重定向之后维护请求(通过struts-config.xml和Action中的mapping.findForward)? – Sefran2

+0

@DaveNewton:如果你写一个答案,我会接受它, – Sefran2

回答

0

你可以试用一下这个:

page1.jsp设置一个请求属性,当控制达到 page2.jsp检查该请求的属性,如果它的存在重定向 控制同一page2.jsp。通过这种方式,当控制被重定向到 相同或其他资源时,先前的请求和响应对象在那里不再是 (即,因为 HTTP是无状态协议,所以请求和响应对象都将被销毁)并且在重定向之后像这样,将 设为否与之前的请求相关的数据以及在刷新page2.jsp时不会重复前一个任务。

我不确定,但在我的一个应用程序中,我使用了相同的目的。让我知道是否有人有更好的选择。