11

我有一个与此处发现的问题类似的问题:JSF selectItem label formatting

我想要做的是接受一个双精度值作为我的值并用两位小数显示。这可以通过简单的方式完成吗?

我尝试过使用,但这似乎适用于发送到服务器的 inputText 的值,而不是输入字段中的初始值。

到目前为止我的代码:

<h:inputText id="december" value="#{budgetMB.december}" onchange="setDirty()" styleClass="StandardBlack">
    <f:convertNumber maxFractionDigits="2" groupingUsed="false" />
</h:inputText>

编辑:上面的代码确实有效。我被 JDeveloper 愚弄了,即使我对项目进行了显式重建并重新启动了嵌入式 OC4J 服务器,它也没有更新 jsp 页面。但是,重新启动计算机后,一切都很好。

4

3 回答 3

14

如果我没有误解您的要求,我可以在渲染视图期间实现输入框中值的格式化:

<h:inputText id="text1" value="#{...}">
    <f:convertNumber pattern="#,###,##0.00"/>
</h:inputText>

我在供应商品牌的 Eclipse 中使用标准面孔组件,所以我假设该pattern属性是标准 JSF 的一部分。

于 2008-10-03T17:53:15.290 回答
1

如果您要尝试在屏幕上更改输入文本字段的值(以更正用户输入),您可能应该考虑使用 JSF ajax 框架之一,例如Rich Faces

一个可能的示例如下所示:

<h:inputText id="december" value="#{budgetMB.december}" styleClass="StandardBlack">
  <f:convertNumber maxFractionDigits="2" groupingUsed="false" />
  <a4j:support event="onblur" reRender="december" />
</h:inputText>

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

于 2008-10-03T19:15:10.617 回答
0

看来您实际上是在格式化货币。已经存在一个特定的格式化程序来处理您可以分配许多选项的货币:

<f:convertNumber type="currency" />

这个标签的一些有趣的属性是:localecurrencyCodeintegerOnly和。currencySymbolpattern

于 2013-10-12T04:41:58.690 回答