p:commandButton update action在提交后不会清除输入字段

时间:2015-03-24 09:50:04

标签: ajax primefaces

<h:form id="registrationForm">
            UserName:
            <p:inputText id="usernameInput" value="#{userUI.thisUsername}" />
    <br />
            Password:
            <p:inputText id="passwordInput" value="#{userUI.thisPassword}" />
    <br />
            <p:commandButton actionListener="#{userUI.createUser}" 
            update="registrationForm" value="Create" />
</h:form>    

我希望此表单在提交后重置其值。 我输入用户名和密码,点击提交,重置值并保留空值,而不是我输入的值。尝试将commandButton从h:form中移出,但它没有改变任何东西。也尝试添加 <p:ajax update="registrationForm" resetValues="true" /> 它仍然存在空值。 我该怎么做?

1 个答案:

答案 0 :(得分:0)

尝试一下: Bean是作用域请求。  要重置值,请在post构造函数中重新初始化字段,或在createUser方法中手动调用它。

@ManagedBean
@RequestScoped
public class UserUI implements Serializable {
    private static final long serialVersionUID = 1L;

    private String thisUsername;
    private String thisPassword;

    public UserUI(){
    }

    @PostConstruct
    public void init(){
       thisUsername="";
       thisPassword="";
    }

    public void createUser(){
        System.out.println("ThisUserName :"+thisUsername);
        System.out.println("thisPassword :"+thisPassword);
        init();
    }


    /////////GETTER SETTER
    //thisUsername
    //thisPassword
}

您的webPage.xhtml将如下所示:

<h:form id="registrationForm">
            <p:panelGrid columns="2">

            <h:outputLabel value="UserName:" for="usernameInput" />
            <p:inputText id="usernameInput" value="#{userUI.thisUsername}" />

            <h:outputLabel value="Password:" for="passwordInput" />
            <p:inputText id="passwordInput" value="#{userUI.thisPassword}" />

            <p/>
            <p:commandButton action="#{userUI.createUser}" update="@form" value="Create" />
            </p:panelGrid>
</h:form>