1
我在這篇文章中實現了這個建議,並在第一次點擊後禁用了我的按鈕。 How to prevent DoubleSubmit in a GWT application? 我想知道的是在我的失敗和成功方法中重新啓用了我的按鈕後,它總能得到重新啓用。也有任何地方我可以把一些代碼,我總是要執行時,服務器回覆,而不是在失敗和成功的方法複製它gwt rpc會不會調用我的onsuccess或onfail方法?
我在這篇文章中實現了這個建議,並在第一次點擊後禁用了我的按鈕。 How to prevent DoubleSubmit in a GWT application? 我想知道的是在我的失敗和成功方法中重新啓用了我的按鈕後,它總能得到重新啓用。也有任何地方我可以把一些代碼,我總是要執行時,服務器回覆,而不是在失敗和成功的方法複製它gwt rpc會不會調用我的onsuccess或onfail方法?
我認爲onSuccess()
或onFailure()
將每次調用。
至於有一個地方,你可以把代碼,將始終運行時得到響應服務器,你可以創建一個AsyncCallback
其代碼在onFailure()
和onSuccess()
方法。然後,您可以在每次創建AsyncCallback
時擴展AsyncCallback
。
public MyAsyncCallback<T> extends AsyncCallback<T>(){
@Override
public void onFailure(Throwable caught){
//Do something
onResponse()
failed(caught);
}
@Override
public void onSuccess(T result){
//Do something
onResponse()
succeeded(result);
}
public void onResponse(){
// Do something or nothing by default
}
public abstract void failed(Throwable caught);
public abstract void succeeded(T result);
};
每當你想創建一個AsyncCallback
只需使用MyAsyncCallback
:
AsyncCallback callback = new MyAsyncCallback(){
@Override
public void failed(Throwable caught){
//Do something
}
@Override
public void succeeded(T result){
//Do something
}
// Optionally override onResponse() if needed
@Override
public void onResponse(){
//Do something
}
}
問題這種方法是我需要根據用戶執行什麼按鈕或行動不同的行爲。道歉我誤以爲你的答案。 – MayoMan 2013-03-21 16:47:17
哦,我想我誤解了。你可以在你的'AsyncCallback'中添加一個方法,比如'public void onResponse(){...}',然後從'onSuccess()'和'onFailure()'中調用它。 – enrybo 2013-03-21 16:50:41
@MayoMan我改變了我的實現了一下,以說明你想要的。至少據我瞭解你想要做什麼。 – enrybo 2013-03-21 16:56:52