2013-02-26 69 views
1

This document说:GWT的localStorage - 存储对象

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

任何人都可以帮助我“串”一个对象,以将其保存在客户端? 有GWT的一些方法来做到这一点?

+0

你的意思是要字符串化GWT(JAVA)的对象? – 2013-02-26 15:21:00

+0

我的意思是什么意思指南... 我需要保存与localstorage客户端上的对象,但我的对象不是一个字符串。 – 2013-02-28 13:37:29

回答

0

你必须序列化你的对象。 您可以将它transferad作为字符串在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()); 
0

下面是官方的GWT链接Retrieving JSON Data

例如在该教程

使用

JsonUtils.safeEval(json); 

您可以在结果传递给HTML5

+0

我们确实需要修复这个教程:使用'JsonUtils.safeEval()'而不是'asArrayOfStockData'方法! – 2013-02-26 15:45:12

+0

@ThomasBroyer谢谢Thomos的更新:) – 2013-02-26 15:55:18

+0

顺便说一句,我打开一个问题来跟踪它:https://code.google.com/p/google-web-toolkit/issues/detail?id=8037现在也许你可以更新你的答案;) – 2013-02-26 16:11:56

相关问题