在JSF中显示原始值f:convertNumber(无限小数位数)
我在使用<h:inputText
中的<f:convertNumber groupingUsed="false" />
将用户输入转换为数字。当再次打开输入对话框时,输入格式化为只显示3个小数位。我怎样才能改变这个来显示输入“保持原样”。在JSF中显示原始值f:convertNumber(无限小数位数)
要格式化输出中的值,我使用#{of:formatNumber(specification.pricePerUnit, '#0.000')}
来显示3个小数位(至少)。不幸的是,我们有客户,他们想输入更多的小数位(上面的问题)。那么,我怎样才能显示至少有3个小数位的数字,但是如果有更多的数字,请将它们全部显示出来?
感谢提前:)
好吧,让我们假设如下:我有一个表格:我输入值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
啊没关系,所以我必须随处添加这个模式。非常感谢 :) – J4y
我不知道如果我理解你的问题很好 - 只要使用''#.000 ####### '格式为始终显示3个小数位(即使它们为0),并且最多可达10个小数位数乳清不为0.例如: '将显示:'123,123456789'和这一个:' '会显示:'123,400' –
krokodilko
啊好吧,谢谢。这对于显示值是正常工作的。 :) 另一个问题是关于编辑该值,例如对于值123,123456789,h:输入显示的是'123,123'而不是'真实'的值。 – J4y
好的,有这个属性'maxFractionDigits',我也可以设置为'10'。但是没有办法在'h:input'中显示值,因为它来自数据库,但是作为本地化的数字? – J4y