GWT - 使用ImageCell的CellTable / DataGrid

时间:2012-07-25 21:52:23

标签: java image gwt celltable

我想在ImageCell中添加CellTable。我的代码如下:

Column<Message, String> myColumn = new Column<Message, String>(new ImageCell()) {
    @Override
    public String getValue(Message details) {
        Image image =  new Image (ClientResources.of().image1());
        return image.getUrl();      
    }
};

当我运行它时会显示以下警告:

  

[WARN] [adminportal] - URL属性上下文中带有变量的模板:模板代码生成器无法保证模板的HTML安全性 - 请手动检查或使用SafeUri在URL属性上下文中指定参数

我的问题是如何安全地将url作为字符串值返回。我看到了一个关于之前使用imagecell的例子,返回值是字符串。我现在找不到它。谁能告诉我如何解决这个问题。

注意:如果我想在celltable中使用imagecell并且返回值是字符串,我只想知道如何解决这个问题。我知道如何使用imageresourcecell来实现相同的目标。另外,我知道我可以将getValue()的类型从字符串更改为safeHtml以实现目标。但我真的想知道如何通过使用getValue()的imagecell和字符串类型来实现这一点,因为我之前看到了一个关于此的示例,并且我成功地尝试了它。只是不记得我在这里做错了什么。

1 个答案:

答案 0 :(得分:2)

没有办法修复这个(删除警告):使用String作为模板的一部分本质上是不安全的,GWT会警告你。如果您完全确定您的价值观的安全性,那么您可以放心地忽略警告,但它们仍会被发出。

没有这些警告的唯一方法是使用SafeUri,即使用SafeImagecell。然后由您来保证您网址的安全,具体取决于您用于构建SafeUri的方法(请查看UriUtils