【问题标题】:Can I use f:convertNumber with h:outputFormat我可以将 f:convertNumber 与 h:outputFormat 一起使用吗
【发布时间】:2015-01-15 13:57:34
【问题描述】:

我有一个复合组件,这是它的一个 sn-p。

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

如果我想使用&lt;f:convertNumber&gt; 格式化 value3,我该怎么做?

【问题讨论】:

    标签: java jsf outputformat


    【解决方案1】:

    &lt;h:outputFormat&gt; 使用标准java.text.MessageFormat API。继续单击该链接并阅读 javadoc。

    &lt;f:convertNumber&gt; 使用标准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>
    

    【讨论】:

    • 这是你在这里给我的一个很好的信息,但不幸的是我要使用 convertNumber 的分组属性。这可能吗?
    • 如果需要启用/禁用分组,只需添加/删除,
    • 你的回答帮助我制定了我的答案,不幸的是,当我这样做时我得到了一个例外。解决方案是对输出格式的值进行相同的检查,并在“数字”或简单地为空之间进行选择
    猜你喜欢
    • 2023-03-25
    • 2020-08-04
    • 2018-10-23
    • 2011-02-22
    • 2021-03-16
    • 2016-11-20
    • 2019-01-25
    • 2011-06-11
    • 2017-02-20
    相关资源
    最近更新 更多