首次提交表单后重新分配值标签?

时间:2014-12-04 17:13:11

标签: java forms struts2 jstl struts

假设我有以下课程

public class Account {

  private Long id;
  private String username;
  private String password;

  // getters + constructor

}

以下动作类

public MyAction extends ActionSupport {

  private CoreService service;

  private long id;
  private String username;
  private String password;

  private Account account;

  public String loadAccount() {
    account = service.getAccountById(id);
    return SUCCESS;
  }

  public String updateAccount() {
    service.updateAccount(account);
    return SUCCESS;
  }
  // getters + setters
}

我使用loadAccount()方法填充表单的字段。

我的表格:

<form action="update_account" method="post">
      <label for="username">New username</label>
      <input type="text" name="username" value="${account.username}" id="username" placeholder="Enter name" required>

      <label for="password">New password</label>
      <input type="password" name="password" id="password" placeholder="Enter new password" required>
</form>

现在,假设用户将记下新的用户名,但验证失败。用户名&#39;内的值textfield将重置为帐户的用户名。我想更改我的程序并使其最初加载帐户的用户名,但如果验证失败,它将加载最后一个输入。

1 个答案:

答案 0 :(得分:1)

更改显示字段的代码

<input type="text" name="username" value="${username}" id="username" placeholder="Enter name" required>

然后是一个在加载后设置它的方法

public String loadAccount() {
  account = service.getAccountById(id);
  setUsername(account.getUserName());
  return SUCCESS;
}