我正在使用HTML5 Local Storage开发GWT离线应用程序。我想使用com.google.gwt.storage.client.Storage(在2.3版中引入)来缓存/存储传输对象。但问题是,就目前而言(版本2.3),存储只能保存字符串值。
是否有可能从客户端代码中使用GWT内置的rpc序列化/解除分离机制?这样我就可以序列化传输对象并将它们存储在本地存储中,并在需要时检索它们并反序列化内容。
答案 0 :(得分:1)
GWT Docs有这样的说法:
本地存储是字符串存储
HTML5本地存储保存数据 字符串形式作为键值对。如果您要保存的数据不是 字符串数据,您负责转换为字符串和从字符串转换 使用LocalStorage时。对于与GWT一起使用的代理类 RequestFactory,你可以使用RequestFactory#getSerializer()来做 字符串序列化。对于非代理对象,您可以使用JSON stringify and parse。
修改强>
RequestFactory#getSerializer()
返回ProxySerializer
的实现。但
ProxySerializer序列化EntityProxy对象的图形。一个 ProxySerializer与ProxyStore的实例相关联 是通过RequestFactory.getSerializer(ProxyStore)创建的。
所以你不能用它来序列化任意对象。只有EntityProxy
个对象可以通过这种方式序列化。 GWT文档没有提到为非EntityProxy
对象进行此类序列化的任何方法,因此我认为可以安全地假设到目前为止还没有现成的解决方案。对于非EntityProxy
个对象,GWT文档(上面引用)建议使用JSON序列化。