簡體   English   中英

Playframework中的日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM