playframework-2.0 – 在Play Framework 2.x中手动调用表单验证

我有一个带有几个约束注释的模型.是否可以使用该模型对象填充Form,然后手动调用验证.我正在寻找这样的东西:

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的答案效果很好.要将对象转换为Map,我使用Beanutils:

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

最佳答案 您可以使用bind()方法代替fill(),并使用预加载的值传入Map.这将触发像bindFromRequest那样的验证.

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