Jsf 用户在签出期间刷新时重复事务

Jsf 用户在签出期间刷新时重复事务,jsf,jsf-2,duplicates,checkout,Jsf,Jsf 2,Duplicates,Checkout,我正在使用JSF执行信用卡签出过程: JSF 问题是当用户在结账时刷新时,我会收到一份重复的订单 刷新期间如何解决此问题??如果不再次单击该按钮,则会调用checkout方法并处理事务,但它们会在调用重定向之前刷新。然后,他们再次签出并生成副本。请尝试禁用按钮,直到操作未完成,或显示带有图像/处理相关文本的弹出窗口。问题是,如果他们刷新按钮,按钮将再次启用…您可以使用禁用属性来防止操作完成后单击按钮 <p:commandButton value="Complete Checkout" a

我正在使用JSF执行信用卡签出过程:

JSF

问题是当用户在结账时刷新时,我会收到一份重复的订单


刷新期间如何解决此问题?

?如果不再次单击该按钮,则会调用checkout方法并处理事务,但它们会在调用重定向之前刷新。然后,他们再次签出并生成副本。请尝试禁用按钮,直到操作未完成,或显示带有图像/处理相关文本的弹出窗口。问题是,如果他们刷新按钮,按钮将再次启用…您可以使用禁用属性来防止操作完成后单击按钮
<p:commandButton value="Complete Checkout" 
action="#{checkoutBean.checkout}" update="@form"/>
public void checkout(){
    //do lengthy credit card processing
FacesContext.getCurrentInstance().getExternalContext().redirect(getNextUrl());
}