ConfigProperty.idPropertyMap
在服務器端填充。 (通過日誌輸出驗證)
在客戶端訪問它顯示爲空。爲什麼靜態GWT字段沒有傳輸到客戶端?
這是一些默認行爲:-((通過日誌輸出驗證)?(我不這麼認爲) 也許是相關的內部類ConfigProperty.IdPropertyMap
,java.util.HashMap
使用,系列化或一些外地訪問修飾符問題的問題?
感謝您的幫助
// the transfer object public class ConfigProperty implements IsSerializable, Comparable { ... static public class IdPropertyMap extends HashMap implements IsSerializable { ... } protected static IdPropertyMap idPropertyMap = new IdPropertyMap(); ... } // the server service public class ManagerServiceImpl extends RemoteServiceServlet implements ManagerService { ... public IdPropertyMap getConfigProps(String timeToken) throws ConfiguratorException { ... } }
從下面添加了一些很好的答案後(謝謝!):
答案底線:當前未執行/支持靜態字段同步。有人/我將不得不提交功能請求
只是我的觀點(一跌倒在愛牛逼到GWT :-)):(!不完美;-))
我理解不錯的可能「全局」變量同步的含義(依賴圖或註釋的使用可能是有用的)。 但是,從一個新的(否則有經驗的Java EE /網絡)的用戶,它看起來是這樣的:
你創造一些
myapp.shared.dto.MyClass
類(DTO =數據傳輸對象)你在裏面添加一些靜態字段這只是代表那些對象的集合(也許有些其他的DTO)
,你也可以做到這一點在客戶端和所有其他的靜態方法以及工作
- 不工作
唯一的事情是同步的(這是不是SOOO壞擺在首位)
但是:一些提供註解,讓我們說@Transfer static Collection<MyClass> myObjList;
會派上用場,因爲我似乎知道的影響和利益,這將帶來。
在我的情況下,它很簡單,因爲客戶端更加靜態,但是如果GWT框架能夠做到這一點,我們希望沒有明確地實現它。
將'protected ... idPropertyMap'改爲'public ...'沒有幫助。 –
btw。我正在使用GWT 2.5.0,運行時代碼與JRE 6兼容,jre7x64bit上的內部Jetty,64位jre7x64bit JVM上的Eclipse Juno 64bit,Win7 64bit –
您可以將您的評論添加到原始文章中。 – Artemix