在转换器中将JSF日历日期转换为JodaTime

Oh *_*oon 4 converter jsf-2

JodaTime可能是最好的日期和时间库.

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

这是明智的吗?

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

Bal*_*usC 11

只需坚持java.util.Date模型,视图和持久层(因为所有人都已经内置了对它的支持,你通常不需要在这些层上执行日期计算/操作)并且只在需要时在业务层使用JodaTime根据java.util.Date值执行计算/操作.这将使很多事情变得简单.

一旦使用Java 8,请迁移java.util.Datejava.time.Local/ ZonedDateTime.JSF 2.3将附带额外的Java 8支持<f:convertDateTime>.在此之前,您需要按照以下答案中的说明自制它们:如何在p:calendar中使用java.time.ZonedDateTime/LocalDateTime.

  • 请注意Java January为0,Joda January为1.在Java API中,他们从0开始计算月份... (2认同)
  • 只有在使用史诗`java.util.Calendar`类时才会出现这种情况.**问题中没有**表明实际上正在使用它.唯一的"日历"术语适用于`<p:calendar>`组件/小部件,它本身已经默认为`java.util.Date`模型值. (2认同)