<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" />
它仍然存在空值。
我该怎么做?
答案 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>