我有一个数字列表(范围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”但似乎没有任何效果:( 谢谢你的帮助!
答案 0 :(得分:5)
转换器仅适用于项目值,而不适用于项目标签。这就解释了为什么它“失败”。在这种特殊情况下,最好的办法是创建一个custom EL function,这样就可以得到这样的结果:
<f:selectItems ... itemLabel="#{my:formatNumber(item.label, '#,###')}" />
JSF实用程序库OmniFaces有几个,另请参阅OmniFaces functions/Numbers showcase。