- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我很难弄清楚如何在 Play 2 Java 中进行更新场景
我有
User.java模型
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long id;
@Constraints.Required
public String email;
@Constraints.Required
public String fullname;
}
我想更新它,所以在我的 Controller 中我这样做
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
}
然后我尝试一些不同的方法,比如这样
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
属性,并且仍然触发模型的验证约束?
最佳答案
将userForm = userForm.bindFromRequest();
更改为userForm.bindFromRequest();
我的工作代码与您的非常相似,这是我观察到的唯一区别。
关于java - Play 2 Java - 在更新场景中使用 fill 和 bindFromRequest 验证表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42323888/
我是 Java Play 框架的新手,我正在尝试让身份验证正常工作。所以我正在关注这个教程:https://www.playframework.com/documentation/2.1.0/Java
我正在尝试使用 Java Play,但遇到了直接障碍。情况非常简单,设置也很简单。 我有一个名为 Person 的模型类,它非常简单,看起来像这样; package models.models; im
我有一个 在前端,我正在使用 form().bindFromRequest()在后端,然后使用 DynamicForm。 但这是打嗝: DynamicForm form = form().bindFr
我正在尝试使用 Play 的自动绑定(bind)功能,但没有成功。我在 Eclipse 4.4 Luna 上使用 Java 进行开发。 这是我的表格: Create a new user F
我有一个这样实现的 Controller 操作: def doChangePassword = deadbolt.Restrict(List(Array(Application.USER_ROLE_K
我需要从套接字通信接收相同的 POST 数据。 这是发送 POST 和接收响应的代码,看起来工作正常: String data = "t=" + URLEncoder.encode("Title",
我需要从套接字通信接收相同的 POST 数据。 这是发送 POST 和接收响应的代码,看起来工作正常: String data = "t=" + URLEncoder.encode("Title",
我很难弄清楚如何在 Play 2 Java 中进行更新场景 我有 User.java模型 public class User { @Id @GeneratedValue(strateg
这周我开始学习 Play。现在我正在尝试编写一段代码,在用户登录时创建 session 。抱歉,该帖子看起来有点乱,因为我是新用户,不允许发布图片。 我正在使用 Java play 2.3.8 和 e
我是一名优秀的程序员,十分优秀!