1

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

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

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

在 2.5rc 中,AbstractCell 可以与带有 ui.xml 的 UiRender 一起使用。如果它可以很好地与 ui.xml 一起使用,那将是最好的解决方案。

4

1 回答 1

1

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

所以你有两个解决方案:

  1. 将实际图像内容(base64 编码)添加到DTO支持您的字段中,CellList并以renderAbstractCell在运行中创建图像的方法。
  2. 将图像 url 添加到您的字段中,DTO并且在您的render方法中,您AbstractCell只需创建一个Image<a href=使用相应的 url。

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

关于存储:

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

于 2012-08-14T07:33:46.567 回答