2013-02-12 65 views
4

我有一個包含多個約束註釋的模型。是否可以使用該模型對象填充表單,然後手動調用驗證。我期待這樣的事情:在Play Framework 2.x中手動調用表單驗證

models.Photo photo = new models.Photo(); 
photo.loadValues(); 
Form<models.Photo> photoForm = new Form<models.Photo>(models.Photo.class); 
photoForm.fill(photo); 

然後我可以做這樣的事情:

photoForm.validate(); #does not exist 
if (photoForm.hasErrors) { 
    ... 
} 

更新: estmatic的回答非常有效。爲了將對象轉換爲一個地圖我使用的BeanUtils:

Map<String, String> photoMap = BeanUtils.describe(photo); 

回答

2

相反的fill(),您可以使用bind()方法,並在Map通過與預加載的值。這將觸發驗證,如bindFromRequest會。

Map<String,String> values = loadValues(); 
Form<models.Photo> photoForm = form(models.Photo.class).bind(values); 
if (photoForm.hasErrors()){ 
    ... 
}