2

我有一个数字列表(范围 500 - 5000,步长 500)。我想添加一个小数点 1000 -> 1.000;2500 -> 2.500 等,但只是为了不将标签保存为值。我尝试了以下但没有奏效:

<h:selectOneMenu value="#{bean.selectedValue}">
    <f:convertNumber type="currency" locale="de-DE" pattern="#,###" />
    <f:selectItems itemValue="#{bean.selectItemslist}" var="item" itemLabel="#{item.label}" itemValue="#{item.value} />
</h:selectOneMenu>

但这没有做任何事情:(

尝试了几种模式并包含 integerOnly="true" 但似乎没有任何效果:(感谢您的帮助!

4

1 回答 1

6

转换器仅适用于项目值,而不适用于项目标签。这就解释了为什么它“失败”。在这种特殊情况下,您最好的选择是创建一个自定义 EL 函数,这样您最终会得到如下结果:

<f:selectItems ... itemLabel="#{my:formatNumber(item.label, '#,###')}" />

JSF 实用程序库OmniFaces有几个,另请参阅OmniFaces函数/数字展示

于 2013-03-14T16:00:25.510 回答