2012-07-25 112 views
4

JodaTime是友好的最佳日期和時間庫,也許。將JSF日曆日期轉換爲JodaTime中的轉換器

所以我很想接收來自前端xhtml日曆小部件在支持bean的JodaTime實例的用戶輸入。因此我正在考慮使用JSF Converter來完成這項工作。

這是明智的嗎?

與此同時,因爲我使用Primefaces組件庫,我已經在我的支持bean接受一個Date對象,將提供自定義轉換器需要我做一遍嗎?即從String格式轉換爲Date對象,然後轉換爲JodaTime DateTime對象。我可以以某種方式讓默認的JSF先將它轉換爲Date?

回答

10

只需在模型,視圖和持久層中堅持java.util.Date(因爲它們都已經內置了對它的支持,並且您通常不需要在這些層上執行日期計算/操作),並在業務層中使用JodaTime只有在需要根據java.util.Date值進行計算/操作時纔會生效。這會使很多事情變得簡單。

一旦你在Java 8上,遷移java.util.Datejava.time.Local/ZonedDateTime。 JSF 2.3將在<f:convertDateTime>附帶的Java 8支持。在此之前,您需要按照此答案中的說明自制它們:How to use java.time.ZonedDateTime/LocalDateTime in p:calendar

+0

感謝您分享寶貴的知識BalusC – 2012-07-25 02:27:31

+2

請注意1月份的Java爲0,Joda 1月爲1.在Java API中,它們從0開始計算月份...... – tartak 2013-01-20 10:55:12

+2

這只是當您使用史詩式java .util.Calendar'類。 **問題中沒有任何**表明這實際上正在使用。唯一的「日曆」術語適用於''組件/控件,它本身已經默認爲'java.util.Date'模型的值。 – BalusC 2016-02-23 10:58:29