簡體   English   中英

如何在Java Play中使用Form解析JSON請求中的Date對象

[英]How to parse Date object from JSON request with Form in Java Play

我在使用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;
  }

}

表單在控制器中的使用就像:

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對象的方式。 有人可以指導我嗎?

您可以注冊綁定表單和請求時將要使用的自定義數據綁定器 只要看一下官方文檔中的示例,您就可以安全地用Date替換他們使用的LocalTime

編輯:哦,別忘了在form <-> request綁定之前注冊databinder 以便它對綁定有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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