【问题标题】:Convert JSF calendar date into JodaTime in Converter在 Converter 中将 JSF 日历日期转换为 JodaTime
【发布时间】:2012-07-23 08:51:53
【问题描述】:

JodaTime 可能是目前最好的日期和时间库。

所以我很想从后端 bean 的 JodaTime 实例中的前端 xhtml 日历小部件接收用户输入。因此,我正在考虑使用 JSF Converter 来完成这项工作。

这样做是否明智?

同时,由于我正在使用 Primefaces 组件库,并且我已经在我的支持 bean 中接收到一个 Date 对象,提供自定义转换器是否需要我重新执行此操作? IE。从 String 格式转换为 Date 对象,然后转换为 JodaTime DateTime 对象。我可以让默认的 JSF 先将其转换为 Date 吗?

【问题讨论】:

    标签: jsf-2 converter


    【解决方案1】:

    只需在模型、视图和持久层中坚持java.util.Date(因为它们都已经内置支持,您通常根本不需要在这些层执行日期计算/操作)并在业务中使用 JodaTime仅当您需要根据java.util.Date 值执行计算/操作时才分层。这将使很多事情变得简单。

    使用 Java 8 后,将 java.util.Date 迁移到 java.time.Local/ZonedDateTime。 JSF 2.3 将在 <f:convertDateTime> 中提供额外的 Java 8 支持。在此之前,您需要按照以下答案中的说明自制它们:How to use java.time.ZonedDateTime / LocalDateTime in p:calendar

    【讨论】:

    • 感谢 BalusC 的精彩分享
    • 请注意 Java 一月为 0,而 Joda 一月为 1。在 Java API 中,它们从 0 开始计算月份 ...
    • 只有当您使用史诗级java.util.Calendar 类时才会出现这种情况。问题中的 Nothing 表明这实际上正在被使用。唯一的“日历”术语适用于 <p:calendar> 组件/小部件,它本身已经默认为 java.util.Date 模型值。
    猜你喜欢
    • 2012-02-20
    • 2014-06-26
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    相关资源
    最近更新 更多