- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有一种简单的方法可以在不编写自己的生成器的情况下将 SerializationStreamWriter 用于自定义目的?
(例如html5存储)
GWT 的 javadoc 告诉的很少。
最佳答案
我们正在为我们当前的项目编写一个实现,它完全符合您的要求:将自定义对象序列化为字符串并将其保存到本地存储中,将字符串反序列化为对象...
因此,对我来说,可能,在客户端使用 SerializationStreamWriter 进行序列化,并使用 SerializationStreamReader 进行反序列化。
为了实现这一点,
您不需要 SerializationStreamWriter/SerializationStreamReader 的生成器,而是TypeSerializer 的生成器(它实现了 com.google.gwt.user.client.rpc.impl.SerializerBase)。这非常简单,看看 com.google.gwt.user.rebind.rpc.TypeSerializerCreator,然后在您的生成器中使用它。或者,如果您的所有自定义对象都在一个 RPC 服务中被引用,您可以只使用生成的 rpc 服务的 TypeSerializer。
并且您必须编写SerializationStreamWriter 或 SerializationStreamReader 的正确实现。因为有两种序列化字符串格式(请求使用的格式和响应使用的格式):
在 GWT 中,您有 ClientSerializationStreamWriter、ClientSerializationStreamReader 用于客户端序列化/反序列化; ServerSerializationStreamWriter、ServerSerializationStreamReader用于服务端序列化/反序列化;
Client SerializationStream Writer会将对象序列化为FORMAT_1,只有Server SerializationStream Reader 可以读取它(将其反序列化为对象)。
Server SerializationStream Writer会将对象序列化为FORMAT_2,只有Client SerializationStream Reader 可以读取它(将其反序列化为对象)。
所以你需要做什么,如果你想使用 ClientSerializationStreamWriter 来序列化你的对象,然后为客户端编写一个类似的 ServerSerializationStreamReader 实现。或者,如果您想使用 ClientSerializationStreamWriter 反序列化字符串,则在客户端编写 ServerSerializationStreamWriter 的类似实现。这并不难,因为 FORMAT_1 和 FORMAT_2 之间的区别只是顺序。
关于gwt - 如何申请SerializationStreamWriter进行存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10574344/
我是一名优秀的程序员,十分优秀!