gpt4 book ai didi

java - 使用UiBinder时是否需要GWT SafeHtml?

转载 作者:行者123 更新时间:2023-11-28 00:14:06 28 4
gpt4 key购买 nike

假设您有以下 MyPanel.ui.xml:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:gwt="urn:import:com.google.gwt.user.client.ui">
<div>
<span id="content">Some content</span>

<gwt:RadioButton ...>
...
</gwt:RadioButton>

<!-- etc. -->
</div>
</ui:UiBinder>

这“映射”到 MyPanel.java:

public class MyPanel extends Composite {
private RadioButton radioButton;
// ...
}

那么是否存在您希望/需要使用 SafeHtml 或 SafeHtmlBuilder 的任何用例,或者仅在处理 HTML 对象及其底层 DOM 结构时才需要“Safe*”API?

如果有 UiBinder 支持的复合 Material 需要使用 Safe* 的用例,也许一个简单的代码示例可以帮助我将这些点联系起来。提前致谢!

最佳答案

将 SafeHTML 与 UiBinder 结合使用的简单示例:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:gwt="urn:import:com.google.gwt.user.client.ui">
<gwt:HTMLPanel>
<gwt:HTML ui:field="myHtml"/>
</g:HTMLPanel>
</ui:UiBinder>
public class MyPanel extends Composite {
private HTML myHtml;
// ...
}

在这里你应该使用myHtml.setHTML(SafeHTML) [*]。这样做的原因是,这是示例中唯一可能出现用户提供的内容的地方。用户内容不能出现在 UiBinder 模板本身中(因为它是静态的:在编译时固定)。

因此,是否需要 SafeHTML 之间的区别等同于信任用户提供内容与信任开发人员内容之间的区别。

[*] 在您自己的示例中,您应该使用 RadioButton 的 SafeHTML 构造函数之一

关于java - 使用UiBinder时是否需要GWT SafeHtml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13298881/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com