String h:输出字符串中长单词的换行符
有没有办法告诉JSF(2.0)的String h:输出字符串中长单词的换行符,string,jsf,jsf-2,primefaces,String,Jsf,Jsf 2,Primefaces,有没有办法告诉JSF(2.0)的h:outputText在字符串中的很长单词中插入换行符(或者更好:像“-”这样的自定义字符串)? 我的问题是,当我在一个没有空格的字符串中有一个很长的单词时,我的数据表(PrimeFaces)变得太宽了。当我有一个长文本“正常”字,然后下一个字被打印在下一行时,它就起作用了 虽然我可以使用转换器,但这仍然意味着我必须在字符串中查找长单词,然后在每次显示文本时剪切它们。这在某种程度上对少量数据有效,但当数据库变得越来越大时,需要大量的处理能力(而且会) 我还可以在
h:outputText
在字符串中的很长单词中插入换行符(或者更好:像“-”这样的自定义字符串)?
我的问题是,当我在一个没有空格的字符串中有一个很长的单词时,我的数据表(PrimeFaces)变得太宽了。当我有一个长文本“正常”字,然后下一个字被打印在下一行时,它就起作用了
虽然我可以使用转换器,但这仍然意味着我必须在字符串中查找长单词,然后在每次显示文本时剪切它们。这在某种程度上对少量数据有效,但当数据库变得越来越大时,需要大量的处理能力(而且会)
我还可以在插入数据库之前扫描字符串中的长单词,这意味着我只需要处理字符串一次,而且如果需要的话,我无法完全重建原始字符串
有人对此有什么意见吗
提前向您表示感谢并致以最良好的问候,
Robert将相关元素的CSS属性设置为断开单词
<h:outputText styleClass="someClass" />
这可以通过两个步骤来完成
1) 将样式应用为表格布局:固定到panelGrid
例如:
2) 然后对
应用单词换行符的样式,如下所示
例如:
希望这有帮助。您可以使用h:inputTextarea而不是h:outputText,不要记得将readonly属性设置为true并删除边框,如下所示:
<h:inputTextarea rows="10" cols="50" readonly="true" value="multiline String" style="border-color: white" />
<h:outputText value="111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" style="word-break: break-all;"/>
如果字符串中有很长的单词,可以使用分词:全部分词代码>如下所示:
<h:inputTextarea rows="10" cols="50" readonly="true" value="multiline String" style="border-color: white" />
<h:outputText value="111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" style="word-break: break-all;"/>
但它需要CSS3。
链接:被接受的答案对我不适用。使用“空白:正常”修复了它
<h:outputText value="long text" style="white-space: normal"/>
这对我不起作用。css类显示在firebug中匹配的css规则中,但我不知道为什么长单词不会中断。@djaqeel:一个先决条件是元素具有固定的宽度。哦,谢谢。你是对的。当我给出固定宽度时,它工作得很好,但我想给出%widt。在%age-width中,单词换行是可以的,但是跨度本身占据了整个宽度(好像在应用单词换行之前它计算了跨度的宽度)。@Robert M.嗨,我也有同样的问题。Balus C answer对我不起作用,但我使用的是jsf1.2。如果你展示你的代码,那么它对我会很有用。Balus C的解决方案不依赖于使用的JSF版本。这是一个简单的CSS解决方案。styleClass属性存在于JSF 1.2中,并将“class”属性呈现给结果HTML输出。如果它不起作用,这是HTML/CSS中的一个问题。您可以尝试为父HTML元素设置一个固定的宽度。来源:请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票
<h:outputText value="long text" style="white-space: normal"/>