2

我想ImageCellCellTable. 我的代码如下:

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()从 string 更改为 safeHtml 以实现目标。但我真的很想知道如何通过使用 imagecell 和 string 类型来实现这一点,getValue()因为我之前看到过一个关于这个的例子并且我成功地尝试过。只是不记得我在这里做错了什么。

4

1 回答 1

2

没有办法解决这个问题(删除警告):使用 aString作为模板的一部分本质上是不安全的,GWT 会警告您。如果您绝对确定您的值的安全性,那么您可以放心地忽略警告,但它们仍会发出。

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

于 2012-07-26T09:10:25.520 回答