2014-10-06 58 views
-1

我正在研究從服務器獲取HTML內容並將其顯示給用戶的應用程序。從服務器獲取的內容是一個完整的HTML文檔。我已經使用UiBinder爲視圖指定UI。GWT setInnerSafeHtml呈現HTML源碼

<g:HTMLPanel ui:field="mainPanel" styleName="ap-mainPanel"> 
</g:HTMLPanel> 

在視圖中我有setViewerContent(字符串內容)方法:

public void setViewerContent(String content) 
{ 
    mainPanel.setStyleName("ap-mainPanel ap-scrollPanel"); //$NON-NLS-1$ 
    SafeHtml safeHtmlContent = SafeHtmlUtils.fromString(content); 
    mainPanel.getElement().setInnerSafeHtml(safeHtmlContent); 
} 

當我運行此我看到的HTML文檔的源與所有的標記。如果我使用setInnerHtml(),那麼文檔顯示正確。代碼庫的靜態代碼分析規則不允許使用setInnerHtml()。有人可以提出任何補救措施嗎?

回答

1

the javadoc(重點煤礦):

返回SafeHtml包含逃脫字符串。

你要使用fromTrustedString如果你信任你的服務器,或SimpleHtmlSanitizer.sanitizeHtml()(或您自己的HTML液),如果你不這樣做。