Jsf 刷新p:点击按钮后输入文本内容

Jsf 刷新p:点击按钮后输入文本内容,jsf,primefaces,xhtml,Jsf,Primefaces,Xhtml,我正在实施简单的登记表。带有输入和标签的表格放置在p:dialog中,该对话框位于h:form中。其中一个功能是自动生成字母数字密码。我想在点击相同形式的按钮后更新密码p:inputText的值。每次按下按钮时都会调用Generating方法(我可以在控制台日志中看到生成的字符串)。该问题与未正确更新的inputText标记有关。打开对话框后,我只能刷新密码inputText一次,下次方法被激发,但inputText不会更新。代码如下: 字母数字密码生成器方法: public static St

我正在实施简单的登记表。带有输入和标签的表格放置在p:dialog中,该对话框位于h:form中。其中一个功能是自动生成字母数字密码。我想在点击相同形式的按钮后更新密码p:inputText的值。每次按下按钮时都会调用Generating方法(我可以在控制台日志中看到生成的字符串)。该问题与未正确更新的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;
    }
}
ViewScope 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>


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

请创建一个。PrimeFaces命令按钮已经ajaxified了。请参阅文档和showcase@VasilLukach当前位置根据您的要求,为什么需要这个?