为什么SimpleBeanEditorDriver返回空值

时间:2012-06-13 11:57:10

标签: gwt uibinder

我有一个SimpleBeanEditorDriver来编辑我的帐户bean,但是当我编辑并调用flush()时,我总是得到空值。我检查了一切,谷歌文件,stackoverflow,谷歌组,但没有发现任何问题。我错过了什么 ?

这是我的观点

public class AccountCreatorViewImpl extends Composite {


  interface Driver extends SimpleBeanEditorDriver<Account, AccountEditor> {
  }

  interface AccountCreatorViewImplUiBinder extends UiBinder<HTMLPanel, AccountCreatorViewImpl> {
  }


  Driver driver = GWT.create(Driver.class);

  private static AccountCreatorViewImplUiBinder ourUiBinder = GWT.create(AccountCreatorViewImplUiBinder.class);


  private AccountCreatorPresenter presenter;


  @UiField
  AccountEditor accountEditor;

  @UiField
  Button create;

  public AccountCreatorViewImpl() {

    HTMLPanel rootElement = ourUiBinder.createAndBindUi(this);

    initWidget(rootElement);

    Account account = new Account();

    driver.initialize(accountEditor);


    driver.edit(account);


  }

  @UiHandler("create")
  public void onCreate(ClickEvent event) {


    Account editedAccount = driver.flush();
    if (driver.hasErrors()) {

      Window.alert("Has errors! ->"+driver.getErrors().toString());
    }

    Window.alert(editedAccount.getEmail() + "/" + editedAccount.getPassword());

//    presenter.create(editedAccount);
  }


} 

这是我的简单编辑器

public class AccountEditor extends Composite implements Editor<Account> {


  interface AccountEditorUiBinder extends UiBinder<HTMLPanel, AccountEditor> {
  }

  private static AccountEditorUiBinder ourUiBinder = GWT.create(AccountEditorUiBinder.class);

  @UiField
  TextBox email;

  @UiField
  PasswordTextBox password;

  public AccountEditor() {

    HTMLPanel rootElement = ourUiBinder.createAndBindUi(this);

    initWidget(rootElement);


  }

}

这是我的帐户类 帐户

public class Account implements Serializable {


  private String email;

  private String password;

  public Account(String email) {
    this.email = email;
  }

  public Account() {

  }

  public Account(String email, String password) {

    this.email = email;
    this.password = password;
  }


  public String getEmail() {
    return email;
  }

  public String getPassword() {
    return password;
  }
}

我的应用程序中的另一个编辑器也遇到了同样的问题。实际上都没有人工作。当我按保存或创建时,我获得实体的空值。

1 个答案:

答案 0 :(得分:2)

尝试将setEmail()和setPassword()方法添加到您的帐户类