我正在使用
@NumberFormat(style = Style.CURRENCY)
private Double value = 50.00;
在我的 Spring MVC 项目中。根据引用文档, “mvc:注解驱动”
足以绑定(bind)默认格式化程序,例如@NumberFormat。我成功地将其显示在我的 JSP 中,但是当我尝试通过
将其打印到我的 Controller 中的控制台时System.out.println(value);
它根本不格式化该值。在我的研究中,我发现了多个 JSP 示例,但没有找到控制台示例。为什么它不格式化控制台中的数字?
最佳答案
方法参数在 Java 中按值传递。如果您调用像 println
这样的方法,您只是传递名为 value
的成员变量的值 - 而不是变量本身。
println
方法无法知道值来自哪里,因此它无法知道它来自名为value
的成员变量,它恰好有一个注释 - println
方法无法检查变量本身并发现注释,因为它不知道值来自哪里。
当您在 JSP 中执行此操作时,您没有使用普通的 Java 方法调用,您可能正在使用一些特定于 Spring 的标记来向其传递变量名称。然后,Spring 标记处理程序将查找变量并找到注释,它用它来确定如何格式化值。
关于java - 控制台的@NumberFormat注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28881569/