[英]Date in Playframework
我有具有日期信息的模型:
package models;
import java.util.Date;
import javax.persistence.*;
import play.data.binding.As;
import play.db.jpa.*;
@Entity
public class testing extends Model {
…
public Date date;
// I even tried public @As("yyyy-MM-dd") Date date;
…
public test1 {…date…}
}
然后我有一個控制器,它接收用戶提交的日期(和其他信息),保存到數據庫
public static void post(… @As("yyyy-MM-dd") Date date, …) {
}
其他信息運行良好,我可以將它們全部保存在數據庫中(日期除外)。 運行后,所有信息都將發布到MySql,但Date字段仍為Null
控制器中日期的調試信息如下:2011年11月7日上午12:00:00因此,我認為控制器類型和型號可能存在沖突。 但是如何? 請幫我。
我正在使用Play 1.2.3 / 1.2.4-RC2,
它可以正確處理日期發布,但是我做了2個小調整:
1)在日期聲明之前添加@Temporal(TemporalType.DATE)
。 沒有它,日期是一個時間戳(包括時間的日期),但是我認為這不是問題:
...
@Entity
public class Testing extends Model {
...
@Temporal(TemporalType.DATE)
public Date date;
...
}
2)在application.conf中,我已經為所有語言環境配置了日期格式
...
# Date format
# ~~~~~
date.format=yyyy-MM-dd
date.format.it=dd/MM/yyyy
date.format.en=MM/dd/yyyy
date.format.fr=dd/MM/yyyy
#
播放帖子的日期正確無誤,並且主要根據當前語言環境正確驗證參數(例如Long / Integer / Float / Double / BigDecimal / Date)。
希望這可以幫助。
控制器中的As注釋可以告訴Play如何將您的請求參數轉換為Date。
之后,您將擁有一個Date實例,而不必擔心模型中的格式。
嘗試在控制器中查看“ request.params.get(“ date”)的值是什么。它的格式不是您輸入的As注釋中的格式,因此Play無法將字符串轉換為Date。
我認為這是您的問題。 因此,您必須更改視圖以發布正確的String或更改As批注以根據獲得的String提供正確的格式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.