2011-09-01 48 views
0

我執行使用MVP模式GWT應用程序。 在演示者中,我使用setData(Object)方法將數據(模型)從RPC服務發送到視圖。GWT MVP最佳實踐模型數據傳遞給視圖

private void getmaterialTypes(final String formType) { 
    new RPCCall<List<MaterialType>>() { 

     public void onFailure(Throwable arg0) { 
      Window.alert("Error : unsuccess..."); 
     } 

     public void onSuccess(List<MaterialType> result) { 
      display.setData(result, "MaterialType"); 
      Window.alert("Success Getting Material Types !"); 
     } 

     @Override 
     protected void callService(AsyncCallback<List<MaterialType>> cb) { 
      materialTypeService.findMaterialTypesByFormType(formType, cb); 
     } 
    }.retry(3); 
} 

當從一個服務只傳遞一個對象或列表時,這將是完美的。發送不同服務返回的多個不同對象的最佳做法是什麼?

回答

0

我寫了一個簡單的類,跟蹤多個服務請求,而當所有的人都已經完成觸發回調。然後,你可以調用display.setData(thing1,thing2,thing3)等。我喜歡這個,因爲後來我顯示的代碼可以直接顯示,而不必擔心在不同時間到達的數據單「載入中...」的消息。或者,如果你的顯示器能夠理解它可能不能一次獲得所有的數據,你可以在你接收到thing1時調用display.setDataType1(thing1),當你接收到thing2時調用display.setDataType2(thing2)等。

+0

第一種方法似乎更好,因爲它會確保所有asynchronus數據被取出,但目前還不清楚如何實現,你可以pleae提供樣品或僞代碼? –