2

这份文件说:

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

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

4

3 回答 3

3

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

于 2015-02-19T23:31:13.133 回答
0

你必须序列化你的对象。您可以将传输的有效负载作为字符串存储在 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());
于 2013-02-26T15:26:57.360 回答
0

这是用于检索 JSON 数据的官方 GWT 链接

例如该教程中的示例

利用

JsonUtils.safeEval(json);

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

于 2013-02-26T15:43:28.023 回答