2013-05-02 114 views
0
HTML myHtml=new HTML(SafeHtmlUtils.fromString("<i>Test</i>")); 
    HTML myHtml2=new HTML("<i>Test2</i>"); 
    testHTMLPanel.add(myHtml); 
    testHTMLPanel.add(myHtml2); 

OUTPUT:爲什麼SafeHtml只顯示純文本並且不顯示錶格文本(GWT)?

<i>Test</i>
的Test2

右輸出應該是這樣的第二個中的formmatted文本。其他Gwt html小部件也有類似的問題。

我正在使用Eclipse Juno。

回答

2

SafeHtmlUtils.fromString(String s) HTML轉義其參數並返回包裝爲SafeHtml的結果。

這意味着,你得到的財產以後像&#6.0;我&#0.62;測試&#0.60; &#.47; i &。#62;

檢查

https://developers.google.com/web-toolkit/doc/latest/DevGuideSecuritySafeHtml

這是一個安全的事情: 爲什麼你SafeHtmlUtils.fromString(userString)的原因是,你可以採取一個動態字符串,例如用戶輸入,並創建一個來自它的HTML文本。這比使用Html.setText(userString)更安全,因爲使用setText(userString)注入易受攻擊的代碼是可行的。

更多關於輸入驗證:http://www.testingsecurity.com/input-validation

+0

但eclip運行的時候,爲什麼,它表明像純文本,沒有格式的文本? 如果我使用SafehtmlBuilder,那麼它顯示正確的格式? – Tum 2013-05-02 06:57:39

+0

如果使用SafeHtmlBuilder,它會顯示你寫的東西。如果使用字符串,它會將字符串解釋爲HTML,以便可以用字符串對文本進行html格式化。 – Sam 2013-05-02 07:00:42

+0

我很困惑!!,爲什麼在eclipe中運行時,它顯示爲純文本,沒有格式化文本? 如果我使用SafehtmlBuilder,那麼它顯示正確的格式,爲什麼? – Tum 2013-05-02 07:08:25