首页 > 解决方案 > 如何在 UiBinder (XML) 中使用带有 SafeHtml 参数而不是字符串的方法?

问题描述

我们正在将我们的应用程序从 GXT 3 迁移到 GXT 4(以及从 GWT 2.5 到 2.8.2),其中改变的一件事是大量组件的正文/文本/标题/等。现在有两个独立的二传手。一个接受字符串参数,另一个接受 SafeHtml。

这是一个例子:

    public void setToolTip(SafeHtml html) {
        ...
    }

    public void setToolTip(String text) {
        ...
    }

不同之处在于接受 String 的方法不呈现 html 元素。但是,另一个可以,如果使用 Java 代码来构建 UI,那是非常好的。不幸的是,我们确实有很多使用 GWT 的 XML 方法构建的 UI,我希望它保持这种状态。

问题是我无法弄清楚如何显示带有 SafeHtml 正文的工具提示。当我尝试这样做时,会出现编译错误。这是我放入 XML 文件的内容:

...
<form:TextArea ui:field="testField" toolTip="{messages.testMesssage}" >
...

这是错误:

[ERROR] java.lang.String required, but {testMess.test} returns com.google.gwt.safehtml.shared.SafeHtml: <form:TextArea toolTip='{messages.testMesssage}' ui:field='testField'> (:184)

谢谢!

标签: gwtgxtuibinder

解决方案


您可能想查看UiBinder 中工具提示的 GXT 示例。在那里,它显示使用 ToolTipConfig 而不是尝试直接设置“工具提示”。

  <ui:with type="com.sencha.gxt.widget.core.client.tips.ToolTipConfig" 
          field="toolTipConfig">
      <ui:attributes title="Information" body="Prints the current document" />
  </ui:with>
  
  ...
  
  <form:TextArea ui:field="testField" toolTipConfig="{toolTipConfig}" />

推荐阅读