Могу ли я использовать f:convertNumber с h:outputFormat

У меня есть составной компонент, и это фрагмент из него.

<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>

Если я хочу отформатировать значение 3, используя <f:convertNumber>, Как мне это сделать?

1 ответ

Решение

<h:outputFormat> использует под крышкой стандарт java.text.MessageFormat API. Идите дальше, нажав на эту ссылку и читая Javadoc.

<f:convertNumber> использует под прикрытием стандарт java.text.NumberFormat API, который поддерживается MessageFormat также. Как говорит его 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>
Другие вопросы по тегам