单击按钮后刷新p:inputText内容

时间:2017-04-26 16:52:16

标签: jsf primefaces xhtml

我正在实施简单的注册表单。带有输入和标签的表格放在 p:对话框中,该页面位于 h:form 中。其中一项功能是自动生成字母数字密码。我想在点击同一表格中的按钮后更新密码 p:inputText 的值。每次按下按钮时都会调用生成方法(我可以在控制台日志中看到生成的字符串)。该问题与inputText标记有关,该标记未正确更新。打开对话框后,我只能刷新一次密码inputText,下次触发方法但不更新inputText。代码如下:

字母数字密码生成器方法:

public static String randomPassword(){
    return RandomStringUtils.randomAlphanumeric(PASSWORD_LENGTH);
}

新帐户模式:

@Named
@ViewScoped
public class AccountModel implements Serializable {
    private Account Account = new Account();
    public Account getAccount() {
        return account;
    }
    public void setAccount(Account account) {
        this.account = account;
    }
}

ViewScoped AddUserBean中的密码修复方法:

public void generateRandomPassword() {
   accountModel.getAccount().setPassword(PasswordGenerator.randomPassword());
   LOGGER.info(MessageFormat.format("Random password generated: {0}", accountModel.getAccount().getPassword()));
}

JSF表格摘要:

<p:column>
    <p:inputText id="userPassword" value="#{accountModel.account.password}" styleClass="fullWidth"  />
</p:column>
<p:column>
    <p:commandButton id="randomPasswordButton" update="userPassword">
        <p:ajax event="click" listener="#{addUserBean.generateRandomPassword}" update="userPassword" />
    </p:commandButton>
</p:column>

问题是:我应该使用什么样的更新来正确输入密码文本刷新(每次按下按钮,不仅一次)?

0 个答案:

没有答案
相关问题