2013-02-12 138 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()){ 
    ... 
}