如何通过GWT在CellList中显示不同记录的不同图像



我有一个带有AbstractCell的CellList。每个记录都有一些文本字段和一张图片,就像朋友列表一样,每个人都有自己的图片。在GWTShowcase中,CellList示例使用AbstractImagePrototype.create(imageResource)为所有人提供了一张图片。这不是真实的情况。如何在GWT中显示这些图片?

我用ClientBundle尝试了一个晚上,结果在一个主面板中只得到了一张静态图片。此外,我不知道这些图片应该放在哪里,放在MySql的Blob列中,还是放在文件系统中。你能给我一些关于GWT端或服务器端的建议吗?非常感谢。

刚才,我看到有人建议在服务器端使用servlet来提供这些图片。但这会导致另一个服务器访问,需要对其进行另一次权限检查。这些图片能否与CellList的文本数据一起下载并在浏览器中显示?谢谢

在2.5rc中,AbstractCell可以使用ui.xml与UiRender配合使用。如果它使用ui..xml fine,它将是最好的解决方案。

这取决于如何将每个用户的图片传输到GWT应用程序
ClientBundle不太适合,因为它在编译时定义了资源,我想你的用户的化身图像是非常动态的(即新用户、用户更改图片等)。

所以你有两个解决方案:

  1. 将实际的图像内容(base64编码)添加到支持CellListDTO中的字段中,而在AbstractCellrender方法中,只需动态创建一个图像
  2. 将图像url添加到DTO中的字段中,在AbstractCellrender方法中,您可以使用相应的url创建Image<a href=

解决方案2将为每个映像创建一个单独的HTTP请求。解决方案1不会,但是传输到客户端的数据量会增加。

关于存储:

将它们作为blob字段存储在数据库中更容易,因为当您删除用户记录时,图像也会自动删除。但是,您的数据库大小会增加,这始终是备份的一个问题。

最新更新