首页 文章

GWT LocalStorage - 存储对象

提问于
浏览
1

This document说:

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

任何人都可以帮我“字符串化”一个对象以将其保存在客户端上吗? GWT有一些方法可以做到这一点吗?

3 回答

  • 0

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

  • 0

    您必须序列化您的对象 . 您可以将Transferad的Payload存储为TransportReceiver中的String(如果您使用的是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());
    
  • 1

    这是Retrieving JSON Data的官方GWT链接

    对于该教程中的示例

    使用

    JsonUtils.safeEval(json);
    

    您可以将该结果传递给 HTML5 .

相关问题