formatting - 如何在 Spring MVC 3.0 中显示格式化的 DateTime?

我的模型中有一个 Joda-DateTime 字段,并希望以 JSP View 的格式显示它。我已经用新的@DateTimeFormat 注释对其进行了注释:

public class Customer {
   private DateTime dateOfBirth;

   @DateTimeFormat(style="M-")
   public DateTime getDateOfBirth() {
      return dateOfBirth;
   }
}

现在我想在我的 JSP 中显示 dateOfBirth:

Date of birth: ${customer.dateOfBirth}

但是结果是未格式化的:

Date of birth: 2010-08-11T11:23:30.148+02:00

经过一番研究,我发现我必须使用 spring:bind-tag:

<spring:bind path="customer.dateOfBirth">
   Date of birth: ${status.value}
</spring:bind>

有了这个就可以了。但是对于这个简单的任务来说似乎太复杂了。而且在列表上使用这种方法更加复杂,因为您必须将列表索引集成到绑定(bind)路径中。

所以我的问题是:有没有更简单的方法来使用 spring 格式化注释显示格式化值?

最佳答案

使用理解 @DateTimeFormat 规则的 spring:eval 标签:

<spring:eval expression="customer.dateOfBirth" />

或者,您可以完全从模型中删除 @DateTimeFormat 规则,并使用 Joda 的 formatDate 标签,如 Naikus 所示。

在未来的版本中,Spring 计划支持插入“SpEL”,这是 spring:eval 调用的“Spring 表达式语言”,作为 JSP 页面的默认统一 EL 实现。这将允许像 ${customer.dateOfBirth} 这样的内联表达式也可以通过 SpEL 进行路由。您可以在此处投票支持此增强请求:https://jira.spring.io/browse/SPR-7459 .

https://stackoverflow.com/questions/3457134/

相关文章:

python - 并非所有参数都在字符串格式化期间转换

excel - 如何防止自动截断 Excel 单元格中的前导零

r - 自动格式化 R 代码的工具

asp.net-mvc - 使用 Razor View 引擎 - 如何将十进制值格式化为逗号和两位小

objective-c - 将 [NSDate date] 的日期缩短几个小时

c# - 在单个键盘快捷键中使用 R# 重新格式化代码

java - 如何格式化具有大参数列表的方法

python - 打印十六进制值时如何让 Python 使用大写字母?

haskell - 如何让haskell输出不是科学计数法的数字?

r - 在 R 绘图图例中添加 pch 符号