2013-05-02 116 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