繁体   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