我的模型有日期信息:
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…}
}
然后我有一个 Controller 接收用户提交的日期(和其他信息),保存到数据库
public static void post(… @As("yyyy-MM-dd") Date date, …) {
}
其他信息效果很好,我可以将它们全部保存在数据库中,除了日期。运行后,所有信息都post到MySql中,但Date字段还是Null
controller中date的调试信息如下: 2011 年 11 月 7 日 12:00:00 所以我认为这可能是 Controller 和模型类型的冲突。但是怎么办? 请帮助我。
最佳答案
我正在使用 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
#
正确 Play 帖子日期并主要根据当前语言环境正确验证参数(例如 Long/Integer/Float/Double/BigDecimal/Date)。
希望这对您有所帮助。
关于Playframework 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8033014/