带换行符的GWT标签

时间:2011-05-31 08:48:51

标签: gwt

GWT Label小部件将所有内容整理为文本,而不是html标签 - 这很好,但我希望将\n解释为<br />我该怎么做。

我会创建子类,但我无法找到要覆盖的内容来实现此行为

(我可以使用HTML小部件,但它会解释所有标签 - 我需要的只是一个线条制动器)

4 个答案:

答案 0 :(得分:25)

使用HTML小部件并使用SafeHtmlBuilder.appendEscapedLines构建的SafeHtml设置其值:

HTML label = new HTML(new SafeHtmlBuilder().appendEscapedLines("foo<bar\nbaz>quux").toSafeHtml());

(或者,您可以split("\n", -1)发送文字,在每个部分上致电SafeHtml.htmlEscape,然后使用<br>加入回来,这就是appendEscapedLines所做的事情

答案 1 :(得分:18)

另一种选择是使用CSS,这在某些出现此问题的情况下可能就足够了。

在显示文字的区域添加CSS属性white-space: prepre-wrap。它将确保在渲染文档时遵守换行符。

这种方法有可能降低一些复杂性,例如:处理\n替换为<br/>的输入。

答案 2 :(得分:5)

您可以使用com.google.gwt.user.client.ui.HTML类来实现此目的,或者只需编写,

Label label = new HTML("// html code you wnat to write");

答案 3 :(得分:0)

在XML文件中使用HTML显示多行文本的问题是我们不允许使用字符&lt;在内容中。例如,下面的代码无法编译:

<g:HTML HTML="Line 1<br />Line2<br />Line 3" />

在我的情况下,我声明该文本为i18n字符串,然后在html中使用

<ui:with field='ln' type='com.mycompany.i18n.LocalizableStrings'/>

<g:HTML HTML="{ln.EXPLAINATION}" />