嗨我用页面设计strut动作类和方法。当我把方法称为正确完成并获得成功结果时。但是当我刷新成功页面时,我有问题再次提交数据库中的上一页值。如何避免这一个。
我的第一个jsp页面表单
<form name="manualorder" action="manual_order" onsubmit="return validation();">
struts.xml中
<action name="purchaseorder" class="materialTypeMasterAction" method="createorder" >
<result name="success">/pages/procurement/PurchaseOrder.jsp</result>
</action>
<action name="manual_order" class="materialTypeMasterAction" method="enquiry_process">
<result name="success">/pages/procurement/success.jsp</result>
</action>
当我再次刷新此成功页面时call enquiry_process method
并提交我在createorder方法中首先创建的前一个值。
答案 0 :(得分:1)
您可以使用重定向操作解决您的问题。 只需更改下面的struts文件(我已经添加了一个成功的操作:
<action name="purchaseorder" class="materialTypeMasterAction" method="createorder" >
<result name="success">/pages/procurement/PurchaseOrder.jsp</result>
</action>
<action name="SuccessAction" class="SuccessPage">
<result name="success">/pages/procurement/success.jsp</result>
<action name="manual_order" class="materialTypeMasterAction" method="enquiry_process">
<result type="redirectAction">SuccessAction</result>
</action>
请不要忘记创建SuccessPage
课程
答案 1 :(得分:0)
使用 post-redirect-get pattern 。
成功后,重定向到"success"
页面。这样,如果用户刷新,他们只会再次获得相同的页面。
请参阅此链接Preventing Form Resubmission (due refreshing),另请参阅Preventing Double Form Submission 这可能会对你有所帮助