2013-03-26 40 views

回答

2

是的,你可以像這樣

import com.google.gwt.user.client.rpc.AsyncCallback; 

public interface MycustomisedCallBack extends AsyncCallback<T> { 


    @Override 
    public void onFailure(Throwable caught); 
    @Override 
    public void onSuccess(T result); 

    public void onmyMethod(); 
} 

並將您的MycustomisedCallBack傳遞給RPC。

rpcService.rpcMethod(new MycustomisedCallBack() { 

      @Override 
      public void onmyMethod() { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onFailure(Throwable caught) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onSuccess(T result) { 

      }; 
     }); 
-1

首先,你需要創建你自己定製的AsyncCallback類,例如:

import com.google.gwt.user.client.rpc.AsyncCallback; 

public class MyAsyncCallback<T> implements AsyncCallback<T> { 

    public void onFailure(Throwable arg0) { 
     // default onFailure method, invoking your method 
     myOnFailure(arg0); 
    } 

    private void myOnFailure(Throwable arg0) { 
     // Your code here 
    } 

    public void onSuccess(T arg0) { 
     // default onSuccess method invoking your method 
     myOnSuccess (arg0); 
    } 

    private void myOnSuccess(T arg0) { 
     // Your code here 
    } 
} 

這個類將接收來自服務的任何結果類型被調用,委託了的onSuccess和電話onFailure方法到您自己的方法(myOnSuccess和myOnFailure),您可以在其中放置代碼。

下一步是使用新的MyAsyncCallback類來調用rpc服務。例如:

myService.sendString("foo", new MyAsyncCallback<String>()); 

在這個例子中,被調用的方法(sendString)接收一個字符串,如果你想建立一個通用的回調經理您的自定義方法必須處理正確的類型處理。另請注意,在調用時您不需要實現回調方法。

相關問題