1

<f:convertNumber groupingUsed="false" />在 my<h:inputText中使用 a 将用户输入转换为数字。再次打开输入对话框时,输入被格式化为仅显示 3 个小数位。如何更改它以“按原样”显示输入。

为了格式化输出中的值,我#{of:formatNumber(specification.pricePerUnit, '#0.000')}用来显示 3 个小数位(至少)。不幸的是,我们有客户想要输入更多的小数位数(上面的问题)。那么,我怎样才能显示至少有 3 个小数位的数字,但如果还有更多,则全部显示?

提前致谢 :)

4

2 回答 2

1

好的,让我们假设以下内容:我有一个表格: 。我输入值 123,123456789 并保存。在另一个页面上使用上面的代码,该值显示为 123,123456789。但是当我再次打开表单以编辑该值时,输入字段将其显示为 123,123 而不是 123,123456789。那么,我假设 maxFractionDigits 的默认值为 3?

一个非常基本的例子:

<h:form>
    <div>
    <h:outputText value="#{of:formatNumber( testBean.myNumber, '0.000#######')}" />
    </div>
    <div>
    <h:inputText value="#{testBean.myNumber}" >
        <f:convertNumber groupingUsed="false" pattern='0.000#######' />
    </h:inputText>
    </div>
    <h:commandButton type="submit" value="Submit" />
</h:form>

和一个bean代码:

private BigDecimal myNumber = new  BigDecimal("355.3456");

public BigDecimal getMyNumber() {
    return myNumber;
}

public void setMyNumber(BigDecimal myNumber) {
    this.myNumber = myNumber;
}

一些测试:

第一个 GET 请求后的页面如下所示:

在此处输入图像描述


现在我输入 12345.6789099

在此处输入图像描述


Submit单击按钮后:
在此处输入图像描述


再举几个例子:
在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

于 2017-09-23T11:14:43.893 回答
0

很难找到任何文档,但在org.glassfish/javax.faces 2.3.9中,我也反对 maxFractionDigits 的默认值为3

<f:convertNumber groupingUsed="false" />

等于

<f:convertNumber groupingUsed="false" maxFractionDigits="3" />

将其更改为您的需要:

<f:convertNumber groupingUsed="false" maxFractionDigits="10" />
于 2020-02-28T20:12:08.297 回答