Struts动作重新提交

时间:2014-07-04 11:36:14

标签: jsp struts2

嗨我用页面设计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方法中首先创建的前一个值。

2 个答案:

答案 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 这可能会对你有所帮助