与GWT和App Engine的还有摔跤,我得出这样的问题:服务器可以创建GWT对象并将其返回给客户端吗?
我有填充了各种数据,我想提出使用GWT RPC客户端上的应用程序引擎。
我已经找到了困难的方式,因为我的模型对象使用JDO进行了注释,我不能将它们发送回客户端,因为它们不是可序列化的。这意味着我将不得不创建一个中间类层来从我的模型对象中提取数据,并将其发送回客户端以异步使用。
我在想,虽然可以在一个servlet中构造一个GWT对象并将它发回来使用?例如,servlet将接收到我的异步请求,从数据库中提取我想要的数据,使用适当的数据子元素创建GWT VerticalPanel(),并将该VerticalPanel发送回客户端以进行注入。
我对这里进行的Java/Javascript交互的理解仍然模糊,我认为在应用程序被deplyed后发送未编译为Javascript的Java对象将无法工作。有人能为我澄清这一点吗?
感谢您的帮助。我认为这几乎是我想要采取的方法。我所预见的问题是如何使用POJO来传输App Engine数据类型。例如,我想将联系人对象存储在数据存储中,并将其作为POJO传回客户端。像firstName和lastName这样的字段会很简单,因为这些字段通常只是字符串,但是联系人的照片呢?这可能需要进入数据库作为Blob,我不会在客户端上的源代码。 – 2009-11-28 04:49:09
我们对图像采取的一般方法是将文件URL存储在后端,并将实际图像存储在文件系统中,然后当我们将这些POJO发送到客户端时,我们将文件URL转换为客户端可以显示的http URL。 另一种方法是将它们作为BLOB保存在数据库中,并提供一个将BLOB作为图像传输回客户端的servlet,并将URL存储到POJO中该BLOB的servlet。 – rustyshelf 2009-11-28 23:23:09
与GWT序列化相关的注释并不多,它是在字节码增强过程中JDO添加的“隐藏”字段。一个JDO pojo不一定只是一个pojo,它也可以有元数据。 – 2009-12-04 21:31:13