使用Map <string,string>的表单绑定不起作用</string,string>

时间:2013-09-10 01:23:45

标签: java forms playframework

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添加到Users的公共字段时,它可以工作。像这样:

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。

有什么建议吗?

0 个答案:

没有答案