java - Spring 3 中 BigDecimal 的格式化

标签 java spring spring-mvc bigdecimal

我有一个 BigDecimal 字段定义为的 bean

@Digits(integer=3, fraction=2)
@NumberFormat(style=Style.NUMBER)
private BigDecimal vatRate = new BigDecimal(0.0f);

格式在表单内效果很好(我使用 <mvc:annotation-driven /> ),但是当尝试使用值填充表格时

<td> ${c.vatRate} %</td>

我得到的值为12.30000000000000000000000000000000 %0E-32 % .

我也尝试过使用<fmt:formatNumber/>但我有一个异常(exception)

In &lt;formatNumber&gt;, value attribute can not be parsed into java.lang.Number: " 0E-32"

现在,这是我唯一的解决方案,为我的 bean 提供特殊的 String getter,它将提供格式化值。但是在表示层中是否有任何“好的”解决方案(理想情况下尊重@Digits注释?)

最佳答案

无意中我发现了以下answer这解决了我的问题:

<td> <spring:eval expression="c.vatRate"/> %</td>

关于java - Spring 3 中 BigDecimal 的格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17292476/

相关文章:

java - 我们可以在线程执行时更改线程的优先级吗?更改会发生还是操作系统会忽略它?(Java)

java - 如何将文件放在类路径上?

java.lang.NoClassDefFoundError : org/json/simple/parser/ParseException with eclipse and spring 错误

如果 spring.mail.host 不在 application.properties 中,则 JavaMailSenderImpl Autowiring 错误

css - 如何使用 spring mvc 4 在 html 文件中添加 css,js

java - 如何初始化网络服务

java - MongoDb 聚合

spring - 无法将 Spring Security @Secured Annotation 导入 Grails 3

java - spring 如何 Autowiring 通用转换器?

java - 如何在调用方法时添加和更改 boolean 值。 (遗产)