在Play Framework 2.x中手动调用表单验证

时间:2013-02-12 12:05:53

标签: playframework-2.0 playframework-2.1

我有一个带有几个约束注释的模型。是否可以使用该模型对象填充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);

1 个答案:

答案 0 :(得分:2)

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

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