GWT LocalStorage - 存储对象

时间:2013-02-26 15:06:42

标签: json html5 gwt local-storage stringify

This document说:

  

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

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

3 个答案:

答案 0 :(得分:1)

您可以尝试 get-storage https://github.com/seanchenxi/gwt-storage,其主要功能是将java对象存储在html5存储中(localstorage / sessionstorage)

答案 1 :(得分: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());

答案 2 :(得分:0)

以下是Retrieving JSON Data

的官方GWT链接

对于该教程中的示例

使用

JsonUtils.safeEval(json);

您可以将结果传递给HTML5