我在<f:convertNumber groupingUsed="false" />
内使用<h:inputText
将用户输入转换为数字。再次打开输入对话框时,输入格式化为仅显示3个小数位。如何更改此项以显示输入&#34;因为它是&#34;。
使用#{of:formatNumber(specification.pricePerUnit, '#0.000')}
格式化输出I&m; m中的值以显示3个小数位数(至少)。不幸的是,我们有客户,想要输入更多的小数位数(上面的问题)。那么,我怎么能用至少3个小数位数来显示数字,但是如果有更多数字,那么显示它们全部?
提前致谢:)
答案 0 :(得分: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
答案 1 :(得分:0)
很难找到任何文档,但是在 org.glassfish / javax.faces 2.3.9 中,我也发现默认值为 3 用于maxFractionDigits。
<f:convertNumber groupingUsed="false" />
等于
<f:convertNumber groupingUsed="false" maxFractionDigits="3" />
根据您的需要进行更改:
<f:convertNumber groupingUsed="false" maxFractionDigits="10" />