控制台的@NumberFormat 注解
@NumberFormat Annotation for console
我正在使用
@NumberFormat(style = Style.CURRENCY)
private Double value = 50.00;
在我的 Spring MVC 项目中。根据参考文档,
"mvc:annotation-driven"
足以绑定默认格式化程序,如@NumberFormat。我成功地将它显示在我的 JSP 中,但是当我尝试通过
将它打印到我的控制器中的控制台时
System.out.println(value);
它根本不格式化值。在我的研究中,我发现 JSP 的多个示例,但控制台的 none 的示例。为什么它不在控制台中格式化数字?
方法参数在 Java 中按值传递。如果你调用像 println
这样的方法,你只是传递了名为 value
的成员变量的 值 - 而不是变量本身。
println
方法没有办法知道这个值是从哪里来的,所以它也没有办法知道它来自名为value
的成员变量,而这个成员变量恰好有注释 - println
方法无法检查变量本身并发现注释,因为它不知道值来自何处。
当您在 JSP 中执行此操作时,您没有使用普通的 Java 方法调用,您可能正在使用一些 Spring 特定的标记,您将名称传递给该标记的变量。 Spring 标签处理程序然后将查找变量并找到注释,它使用它来确定如何格式化值。
我正在使用
@NumberFormat(style = Style.CURRENCY)
private Double value = 50.00;
在我的 Spring MVC 项目中。根据参考文档, "mvc:annotation-driven"
足以绑定默认格式化程序,如@NumberFormat。我成功地将它显示在我的 JSP 中,但是当我尝试通过
将它打印到我的控制器中的控制台时System.out.println(value);
它根本不格式化值。在我的研究中,我发现 JSP 的多个示例,但控制台的 none 的示例。为什么它不在控制台中格式化数字?
方法参数在 Java 中按值传递。如果你调用像 println
这样的方法,你只是传递了名为 value
的成员变量的 值 - 而不是变量本身。
println
方法没有办法知道这个值是从哪里来的,所以它也没有办法知道它来自名为value
的成员变量,而这个成员变量恰好有注释 - println
方法无法检查变量本身并发现注释,因为它不知道值来自何处。
当您在 JSP 中执行此操作时,您没有使用普通的 Java 方法调用,您可能正在使用一些 Spring 特定的标记,您将名称传递给该标记的变量。 Spring 标签处理程序然后将查找变量并找到注释,它使用它来确定如何格式化值。