我有一个类似于这里发现的问题: JSF selectItem标签格式。
我想要做的是接受一个double作为我的值,并用两位小数显示它。这可以通过简单的方式完成吗?
我已尝试使用但似乎应用于发送到服务器的inputText的值而不是输入字段中的初始值。
我的代码到目前为止:
<h:inputText id="december" value="#{budgetMB.december}" onchange="setDirty()" styleClass="StandardBlack">
<f:convertNumber maxFractionDigits="2" groupingUsed="false" />
</h:inputText>
编辑:上面的代码实际上工作。我被JDeveloper欺骗了,即使我明确重建了我的项目并重新启动了嵌入式OC4J服务器,它也没有更新jsp页面。但是,重新启动计算机后一切都很好。
如果我没有误解你的要求,我可以在渲染视图期间实现输入框中值的格式化:
<h:inputText id="text1" value="#{...}">
<f:convertNumber pattern="#,###,##0.00"/>
</h:inputText>
我在供应商品牌的Eclipse中使用了标准面组件,所以我假设了 pattern
属性是标准JSF的一部分。
如果您要做的是在屏幕上更改输入文本字段的值(以更正用户输入),您应该考虑使用其中一个JSF ajax框架 富有的面孔。
一个可能的例子如下所示:
<h:inputText id="december" value="#{budgetMB.december}" styleClass="StandardBlack">
<f:convertNumber maxFractionDigits="2" groupingUsed="false" />
<a4j:support event="onblur" reRender="december" />
</h:inputText>
我没有测试过这个,但我认为它可能有用。
看来你实际上是在格式化一种货币。已经存在一个特定的格式化程序来处理您可以分配许多选项的货币:
<f:convertNumber type="currency" />
此标记的一些有趣属性是: locale
, currencyCode
, integerOnly
, currencySymbol
和 pattern
。