我正在使用 Play 框架,并且我有一个常见的用例来更新具有控制器操作中的表单的模型。但是我在理解它背后的概念时遇到了一些问题,因为如果你有一个包含模型所有属性的表单,这只是工作。如果您只有部分表单,例如只编辑用户模型的密码,则此方法会破坏模型,因为它将模型的其他属性设置为空。这个问题有什么“官方”解决方案吗?Play 以任何方式仅更新现有属性吗?
public static Result update(Long id) {
Model model = Model.findById(id);
Form<Model> filledForm = modelForm.bindFromRequest();
if (filledForm.hasErrors()) {
return badRequest(edit.render(filledForm));
} else {
model.update();
flash("message", "Created new Model!");
return ok(index.render());
}
}
可能解决方案以某种方式在于可以使用附加参数调用 bindFormRequest() 方法,例如字符串或字符串映射?但我无法找出这样做的目的。对此的一些见解也会很棒。非常感谢!