我想在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和字符串类型来实现这一点,因为我之前看到了一个关于此的示例,并且我成功地尝试了它。只是不记得我在这里做错了什么。
答案 0 :(得分:2)
没有办法修复这个(删除警告):使用String
作为模板的一部分本质上是不安全的,GWT会警告你。如果您完全确定您的价值观的安全性,那么您可以放心地忽略警告,但它们仍会被发出。
没有这些警告的唯一方法是使用SafeUri
,即使用SafeImagecell
。然后由您来保证您网址的安全,具体取决于您用于构建SafeUri
的方法(请查看UriUtils
)