【问题标题】:Making h:outputtext don't print a line break on a jsf page使 h:outputtext 不在 jsf 页面上打印换行符
【发布时间】:2012-09-11 17:25:33
【问题描述】:

我有一些类似下面的代码,它可以工作,但我想显示“number%”,而不是只显示一个数字。这是我所拥有的:

<h:outputtext value="#{somebean.doubleValue}">
    <f:convertnumber maxfractiondigits="2">
</h:outputtext>

如果我将“%”符号放在 value 属性中,转换器将无法工作(我相信因为评估结果不仅仅是一个数字),但如果我将“%”符号放在其他 outputtext 标签中,数字和它之间出现一个换行符。我不想那样。

<h:outputtext value="#{somebean.doubleValue}">
    <f:convertnumber maxfractiondigits="2">
</h:outputtext>
<h:outputtext value="%"> <!--prints a new line-->

在 jsf 上实现“xx.xx%”格式的最佳方法是什么?

【问题讨论】:

  • 为什么要使用h:outputtext 只显示“%”?只需在第一个后面加上 %。
  • @Bhesh:产生同样的效果。显然,OP 正在某个狭窄的表格单元格中使用它,或者其内容只是被自动换行,在视觉上显示为换行符。

标签: jsf formatting


【解决方案1】:

将公共父元素的 CSS white-space 属性设置为 nowrap

例如

<span style="white-space: nowrap;">
    <h:outputText value="#{somebean.doubleValue}">
        <f:convertNumber maxfractiondigits="2">
    </h:outputText>%
</span>

(注意:纯文本不一定需要&lt;h:outputText&gt;

如果您实际上在 &lt;h:column&gt; 中使用它(正如我最初猜测的那样),您可以通过 &lt;h:dataTable&gt;columnClasses 属性为 &lt;td&gt; 指定一个类名。

【讨论】:

  • 嗯,我相信这应该可行。我现在不在我的开发机器附近,所以如果我有任何问题我会稍后回来。谢谢!
猜你喜欢
  • 2014-10-01
  • 2015-06-08
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多