在JSF中格式化双精度

时间:2020-03-06 15:04:31  来源:igfitidea点击:

我有一个类似于在这里发现的问题: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中使用的是Standard Faces Components,因此我假设pattern属性是标准JSF的一部分。

如果我们想做的是在屏幕上更改输入文本字段的值(以纠正用户输入),则我们可能应该考虑使用像Rich Faces这样的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>

我尚未对此进行测试,但我认为它可能会起作用。