我有一个复合组件,这是其中的一个片段。
<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>
如果我想使用 <f:convertNumber>
格式化 value3 ,我该怎么做?
<h:outputFormat>
在标准java.text.MessageFormat
API下使用。继续单击该链接并阅读javadoc。
<f:convertNumber>
使用的标准java.text.NumberFormat
API,恰好MessageFormat
也支持该API。正如其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>