java - 控制台的@NumberFormat注解

标签 java spring jsp spring-mvc annotations

我正在使用

 @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/

相关文章:

java - 将十六进制转换为具有 3 位数字的 char

java - 实例与对象

java - 如何在 spring 集成中获取发件人 IP 地址?

java - CXF 端点上的日期类型返回 null 的问题

java - 在 JSP 中使用 Integer 键访问 HashMap<Long,String> 不再有效

HTML、CSS : Sidebar sub menu not appearing

java - SQL Server JDBC 可信连接身份验证如何工作?

java - Eclipse:如何将Web项目转换为AspectJ项目并使用AJDT插件编织运行?

css - 从 JSP 文件中提取 CSS 代码

java - 如何将图像保存到用户的手机上?然后加载它?