Add*_*ted 15 java richfaces converter jsf-2
我正在使用JSF 2和RichFaces 3.在下图所示的数字中,数字显示为数据库中的数字.
但是我想显示它们,6749395.20好像分数部分在那里,5095138.00如果没有分数部分那里.
截至目前,我尝试过这样的事情.
<rich:column>
<f:facet name="header">
<h:outputText value="Total Amount"/>
</f:facet>
<h:outputText value="#{rr[2]}">
<f:convertNumber type="number" groupingUsed="true" minFractionDigits="2" pattern="#0.00"/>
</h:outputText>
</rich:column>
Run Code Online (Sandbox Code Playgroud)
其实我显示所有的人都在一起,但我与他们都试图与所有可能的组合type,groupingUsed,minFractionDigits和pattern.
为什么不起作用?这是怎么造成的,我该如何解决?
Bal*_*usC 40
如果值根本不是,那就会发生Number,例如a String.然后,您基本上使用了错误的类型来表示它所代表的数据.要用Java表示货币,您应该使用BigDecimal.另外,请确保数据库表中的类型是正确的,即它不应该是varchar,而应该是小数.
一旦你修复了数据类型,那么<f:convertNumber>它将按你所说的去做.请注意,该pattern属性将覆盖groupingUsed和minFractionDigits.你应该使用pattern 或其他人.此外,type="number"已经是默认设置,因此可以将其删除.
所以,要么使用
<f:convertNumber pattern="#0.00" />
Run Code Online (Sandbox Code Playgroud)
要么
<f:convertNumber groupingUsed="true" minFractionDigits="2" />
Run Code Online (Sandbox Code Playgroud)
请注意,它们生成不同的格式.您可能想要将分组设置为false.
您也可以使用type="currency",它将根据以下内容自动应用正确的模式UIViewRoot#getLocale():
<f:convertNumber type="currency" />
Run Code Online (Sandbox Code Playgroud)
另请参阅标记库文档和DecimalFormatjavadoc.
| 归档时间: |
|
| 查看次数: |
68679 次 |
| 最近记录: |