我遇到了在Java PLay 2.2.1中使用Form解析java.util.Date类型时出错的问题。我的示例类的模型是:
@Entity
public class SampleModel extends Model
{
@Id
Long id;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
@Required(message="endHour must be specified.")
@Formats.DateTime(pattern="yyyyMMddhhmmss")
private Date date;
public setId(Long id){
this.id = id;
}
public Long getId(){
return this.id;
}
public setDate(Date date){
this.date = date;
}
public Date getDate(){
return this.date;
}
}
在控制器中使用Form就像:
public class ControllerSample extends Controller{
public static Result create(){
JsonNode request = request().body().asJson();
Form<SampleModel> form = Form.form(SampleModel.class).bind(request);
if(form.hasErrors())
{
//It always get Errors with dates
}
....
return ok();
}
}
最后,我发布的JSON就像这样:
{"date":"20140318120000"}
我找不到Form正确解析Date对象的方式。有人可以指导我吗?
答案 0 :(得分:0)
您可以注册绑定表单和请求时将使用的custom databinder。
只需查看官方文档中的示例,您就可以安全地将LocalTime
替换为Date
。
编辑:哦,不要忘记在格式&lt; - &gt;请求绑定之前注册数据透辑,以便它对绑定产生影响。