【问题标题】:GWT LocalStorage - Storage objectsGWT LocalStorage - 存储对象
【发布时间】:2013-02-12 02:25:03
【问题描述】:

This document 说:

HTML5 本地存储以字符串形式将数据保存为键值对。如果您要保存的数据不是字符串数据,则您需要在使用 LocalStorage 时负责与字符串之间的转换。对于与 GWT RequestFactory 一起使用的代理类,您可以使用 RequestFactory#getSerializer() 进行字符串序列化。对于非代理对象,您可以使用JSON stringify and parse

谁能帮我“字符串化”一个对象以将其保存在客户端上? GWT 有什么方法可以做到这一点吗?

【问题讨论】:

  • 你的意思是要字符串化 GWT(java) 对象??
  • 我的意思是指南的意思...我需要用本地存储在客户端上保存一个对象,但我的对象不是字符串。

标签: json html gwt local-storage stringify


【解决方案1】:

你可以试试gwt-storagehttps://github.com/seanchenxi/gwt-storage,它的主要特点是将java对象存储在html5 stroage(localstorage/sessionstorage)中

【讨论】:

    【解决方案2】:

    你必须序列化你的对象。 您可以将传输的 Payload 作为 String 存储在 TransportReceiver 中(如果您使用的是 RequestFacotries):

    public class CustomTransportReceiver implements TransportReceiver {
    
        @Override
        public void onTransportSuccess(String payload) {
    
            //Save payload to LocalStorage
    
        }
    
        @Override
        public void onTransportFailure(ServerFailure failure) {
            //Handle Failure
    
        }
    
    }
    

    创建您自己的 RequestTransport:

    public class AppRequestTransportLocalStorage extends DefaultRequestTransport {
            @Override
        public void send(String payload, TransportReceiver receiver) {
               super.send(payload, new CustomTransportReceiver());
        }
    }
    

    在你初始化 RequestFactory 的地方写:

    requestfactory.initialize(new SimpleEventBus(), new AppRequestTransportLocalStorage());
    

    【讨论】:

      【解决方案3】:

      这是Retrieving JSON Data的官方GWT链接

      例如该教程中的示例

      使用

      JsonUtils.safeEval(json);
      

      您可以将该结果传递给HTML5

      【讨论】:

      • 我们真的需要修复那个教程:使用JsonUtils.safeEval() 而不是asArrayOfStockData 方法!
      • 顺便说一句,我打开了一个问题来跟踪它:code.google.com/p/google-web-toolkit/issues/detail?id=8037 现在也许你可以更新你的答案;)
      • 我的对象的字段不是字符串,而是其他对象。我可以用json发送吗?
      • 不,首先你必须将它们也制作成 json ..否则 toSrig 会调用它们,如果你打印它们,它将显示为 Objectname@id1234....
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多