13

有没有办法告诉h:outputTextJSF(2.0)在字符串中很长的单词中插入换行符(甚至更好:像“-”这样的自定义字符串)?我的问题是,当我在没有空格的字符串中有一个很长的单词时,我的数据表(PrimeFaces)变得太宽。当我有一个长文本“正常”单词时,它会起作用,然后下一个单词会打印在下一行。

虽然我可以使用转换器,但这仍然意味着我必须在字符串中查找长单词,然后在每次显示文本时剪切它们。这对于少量数据会以某种方式起作用,但是当数据库变得更大时(并且它会)需要大量的处理能力。

我还可以在插入数据库之前扫描字符串中的长词,这意味着我只需要处理一次字符串,而且如果我需要它,我也无法完全重建原始字符串。

有人对此有任何意见吗?

提前谢谢你和最好的问候,罗伯特

4

6 回答 6

20

word-wrap将相关元素的CSS属性设置为break-word.

<h:outputText styleClass="someClass" />

.someClass {
    word-wrap: break-word;
}
于 2010-12-29T19:35:29.687 回答
11
 <h:outputText value="Very Wordy&lt;br /&gt;Table Column&lt;br /&gt;Heading" escape="false" />  

输出

Very Wordy
Table Column
Heading
于 2010-12-29T19:10:09.687 回答
4

这可以通过两个步骤来完成

1)将样式应用为表格布局:固定到panelGrid

例如: <h:panelGrid style="table-layout:fixed;">

2)然后将自动换行断词的样式应用于<h:outputText />如下。

例如: <h:outputText style="word-wrap:break-word;">

希望这可以帮助。

于 2013-07-23T18:36:33.827 回答
2

如果你在 String 中有很长的单词,你可以word-break: break-all;这样使用:

<h:outputText value="111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" style="word-break: break-all;"/>

但它需要CSS3。链接:断字

于 2015-07-03T17:26:23.797 回答
0

您可以使用 h:inputTextarea 而不是 h:outputText ,不要记住设置 readonly 属性 true 并像这样删除边框:

<h:inputTextarea  rows="10" cols="50" readonly="true" value="multiline String"  style="border-color: white"  />
于 2013-11-18T15:41:25.603 回答
-1

接受的答案对我不起作用。使用“空白:正常”修复它。

<h:outputText value="long text" style="white-space: normal"/>
于 2021-03-30T02:40:02.913 回答