1

我有一个复合组件,这是其中的一个片段。

<h:outputFormat id="output" value="{0} / {1} / {2}" rendered="#{cc.attrs.readOnly}" styleClass="#{cc.attrs.styleClass}">
    <f:param value="#{empty cc.attrs.value1 ? '-' : cc.attrs.value1}" />
    <f:param value="#{empty cc.attrs.value2 ? '-' : cc.attrs.value2}" />
    <f:param value="#{empty cc.attrs.value3 ? '-' : cc.attrs.value3}"/>
</h:outputFormat>

如果我想使用 格式化 value3 <f:convertNumber>,我该怎么做?

4

1 回答 1

5

<h:outputFormat>在标准java.text.MessageFormatAPI下使用。继续单击该链接并阅读 javadoc。

<f:convertNumber>在幕后使用恰好也支持的标准java.text.NumberFormatAPIMessageFormat。正如它的 javadoc 所说,数字模式可以用{[index], number, [pattern]}.

因此,所以(此示例假设您需要 2 个固定长度的小数位):

<h:outputFormat id="output" value="{0} / {1} / {2,number,#.00}" rendered="#{cc.attrs.readOnly}" styleClass="#{cc.attrs.styleClass}">
    <f:param value="#{empty cc.attrs.value1 ? '-' : cc.attrs.value1}" />
    <f:param value="#{empty cc.attrs.value2 ? '-' : cc.attrs.value2}" />
    <f:param value="#{empty cc.attrs.value3 ? '-' : cc.attrs.value3}"/>
</h:outputFormat>
于 2015-01-15T14:04:50.270 回答