【问题标题】:How to show different image for different records in CellList by GWT如何通过 GWT 为 CellList 中的不同记录显示不同的图像
【发布时间】:2012-08-06 15:42:57
【问题描述】:

我有一个带有 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 一起使用,那将是最好的解决方案。

【问题讨论】:

    标签: image gwt celllist


    【解决方案1】:

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

    所以你有两个解决方案:

    1. 将实际图像内容(base64 编码)添加到您的DTO 中支持您的CellList 的字段中,并在您的AbstractCellrender 方法中即时创建图像。
    2. DTOAbstractCellrender 方法中将图片网址添加到字段中,您只需使用相应的网址创建Image<a href=

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

    关于存储:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-27
      • 2014-12-10
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多