http://www.playframework.com/documentation/2.1.x/JavaForms
该页面指出,使用给定的示例数据模型,
public class User {
public String email;
public String password;
}
您可以将 Map 绑定到表单,并填充数据模型,如下所示:
@Test
public void bindTest() {
Form<User> form = Form.form(User.class);
Map<String,String> anyData = new HashMap<String,String>();
anyData.put("email","bob@gmail.com");
anyData.put("password", "password");
User user = form.bind(anyData).get();
assertEquals("bob@gmail.com", user.email);
assertEquals("password", user.password);
}
这行不通。它在 assertEquals 上失败。但是,当我将 setter 和 getter 添加到用户的公共字段时,它可以工作。像这样:
public class User {
public String email;
public String getEmail() { return email; }
public void setEmail(String value) { email = value; }
public String password;
public String getPassword() { return password; }
public void setPassword(String value) { password = value; }
}
我希望能够在不添加 getter 和 setter 的情况下做到这一点。
毕竟,页面告诉我“注意:底层绑定是使用 Spring 数据绑定器完成的。” 好的,所以它可能与 Spring 数据绑定的工作方式有关,但我很确定公共字段可以完成这项工作,而无需 getter 和 setter。
有什么建议么?