簡體   English   中英

GWT:處理 null 請求工廠代理參考視圖

[英]GWT: Dealing with null request factory proxy references in view

我有一個顯示用戶帳戶詳細信息的視圖。 相應的活動通過 GWT 請求工廠詢問服務器端代碼(以檢索用戶帳戶對象)。 View 接口擴展了 TakesValue<T> 接口,所以我的 ViewImpl<UserAccountProxy> 實現了 setValue(UserAccountProxy) 方法。 正如預期的那樣,此方法用於設置對當前將顯示的 object 的引用。

UserAccountProxy 有很多屬性,因此它的代理引用了很多其他的代理對象。 所以,例如我們可以有:UserNameProxy、UserPasswordProxy、UserRolesProxy等封裝在UserAccountProxy中。 在某些情況下,幾乎所有這些代理都可能是 null(用戶沒有指定角色,用戶沒有頭像,沒有指定簽名......)。 此外,相應的活動可能不會向請求工廠詢問某些屬性,然后這些屬性也將是 null。

如果這些屬性(代理)中的任何一個不是 null,則應使用適當的小部件將其顯示在視圖中。

避免 NullPointerException 的最簡單、最丑陋的方法如下:

public void setValue(UserAccountProxy account) {
   //getUserName() returns proxy which may be null
   if (account.getUserName() != null) { 
     setUserNameWidget(account.getUserName());
   }
   //getUserPassword() returns proxy which may be null
   if (account.getUserPassword() != null) {
     setUserPasswordWidget(account.getUserPassword());
   }
   // (....)
}

當然,我想避免這種類型的編碼,但我不知道如何以另一種方式進行。

提前感謝您的任何提示。

GWT 編輯器框架可以減少將數據 model 和 UI 綁定在一起所需編寫的膠水代碼量。 有一個RequestFactoryEditorDriver類型將 RequestFactory 特定的功能添加到 Editor 框架。 使用OptionalFieldEditor適配器將允許可為空的屬性控制是否創建或丟棄相應的小部件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM