2012-07-25 65 views
2

我想在CellTable中添加ImageCell。我的代碼如下:GWT - CellTable/DataGrid使用ImageCell

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();  
    } 
}; 

它顯示了以下WARNNING當我運行它:

[WARN] [adminportal] - 在URL屬性上下文變量模板:模板代碼生成器不能保證HTML模板的安全性 - 請手動檢查或使用SafeUri在URL屬性上下文中指定參數

我的問題是我如何可以安全地返回字符串值。我看到一個關於使用imagecell的例子,返回值是字符串。我現在找不到它。誰能告訴我如何解決這個問題。

注:我只是想知道如何解決這個問題,如果我想在celltable中使用imagecell和返回值是字符串。我知道如何使用imageresourcecell來實現相同的目標。另外,我知道我可以將字符串getValue()的類型更改爲safeHtml以實現目標。但我真的想知道如何通過使用imagecell和字符串類型getValue()來實現這一點,因爲我之前看到過這個例子,並且我成功地嘗試了它。只是不記得我在這裏做錯了什麼。

回答

2

有沒有辦法修復這(刪除警告):使用String作爲模板的一部分是固有的不安全,GWT警告你。如果你完全確定你的價值觀的安全性,那麼你可以放心地忽略這些警告,但它們仍然會被釋放。

沒有這些警告的唯一方法是使用SafeUri,即使用SafeImagecell。這取決於您使用何種方法來構建SafeUri(請看UriUtils