1
我在搞清楚如何做更新方案中扮演困难的时候更新方案2的Java玩2爪哇 - 使用填充和bindFromRequest在
我
User.java模型
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long id;
@Constraints.Required
public String email;
@Constraints.Required
public String fullname;
}
验证表单
我想更新它,所以在我控制我做
public Result update(Long id) {
ObjectNode result = Json.newObject();
User employee = userService.get(id);
Form<User> userForm = formFactory.form(User.class).fill(employee);
// This won't trigger validation because it uses fill() not bind()
if (userForm.hasError()) {
result.set("message", userForm.errorsAsJson());
return badRequest(result);
}
// do update here
}
然后我尝试这样
012的一些不同的方法public Result update(Long id) {
ObjectNode result = Json.newObject();
User employee = userService.get(id);
Form<User> userForm = formFactory.form(User.class).fill(employee);
userForm = userForm.bindFromRequest();
// This will trigger validation but bindFromRequest will override my fill(employee) before.
if (userForm.hasError()) {
result.set("message", userForm.errorsAsJson());
return badRequest(result);
}
// do update here
}
上面的bindFromRequest()
将覆盖我的fill(employee)
。我不想这样做,因为在我的请求中,我只想填写fullname
而不是我的email
,我的email
属性将触发其所需的验证。
所以我的问题是,我怎么才能更新我的fullname
属性与填充形式使用现有的值,仍然触发我的模型验证约束?
嗨,你能解决它吗? – jschnasse