2013-07-05 93 views
3

我有一个用于注册表单的代码。有一些字段和<p:commandButton>.类型的提交按钮现在,当我提交按钮时,它将在呈现输入字段值的表单下显示一个数据表。 我想在表单提交后清除输入文本字段。但价值依然存在。 如何清除表单文本字段的值?PrimeFaces在提交表格时清除文本字段

<p:panel header="Registration Form" closable="true" closeSpeed="100" toggleable="true" toggleSpeed="100" toggleOrientation="vertical"> 
      <h:panelGrid columns="2" cellpadding="5"> 
       <p:outputLabel value="*First Name"/> 
       <p:inputText id="firstname" value="#{registrationDetails.firstName}" required="true" label="First Name" requiredMessage="First Name required!"/> 

       <p:outputLabel value="*Last Name"/> 
       <p:inputText id="lastname" value="#{registrationDetails.lastName}" required="true" label="Last Name" requiredMessage="Last Name required!"/> 

       <p:outputLabel value="Location"/> 
       <p:selectOneMenu id="location" value="#{registrationDetails.location}"> 
        <f:selectItem itemLabel="Select Location" itemValue=""/> 
        <f:selectItems value="#{registrationDetails.locations}"/> 
       </p:selectOneMenu> 

       <p:outputLabel id="email" value="*Email"/> 
       <p:inputText value="#{registrationDetails.email}" required="true" label="Email" requiredMessage="Email address required!"/> 

       <p:outputLabel value="*Contact Number"/> 
       <p:inputText id="contactNumber" value="#{registrationDetails.contactNumber}" autocomplete="false" maxlength="10" required="true" label="Contact Number" requiredMessage="Contact Number required!"/> 

       <p:outputLabel value="Address"/> 
       <p:inputTextarea value="#{registrationDetails.address}"/> 
      </h:panelGrid> 
<p:commandButton value="Submit" actionListener="#{registrationDetails.formSubmit}" id="buttonSubmit" 
         update="form:msg form:regDetailPanel form:regData" ajax="true"> 
       <f:attribute name="fname" value="#{registrationDetails.firstName}"/> 
       <f:attribute name="lname" value="#{registrationDetails.lastName}"/> 
       <f:attribute name="loc" value="#{registrationDetails.location}"/> 
       <f:attribute name="email" value="#{registrationDetails.email}"/> 
       <f:attribute name="contact" value="#{registrationDetails.contactNumber}"/> 
       <f:attribute name="address" value="#{registrationDetails.address}"/> 
       <p:ajax event="click" immediate="true" update="form:regDetailPanel form:regData"/> 
      </p:commandButton> 

回答

7

你要清楚你的支持bean的值,因此值表达式,如“#{} registrationDetails.firstName”返回null或空字符串。 即在Java代码中,将注册成功后必须清除的所有值设置为空。

这必须在actionListener“#{registrationDetails.formSubmit}”中的某个位置完成。

当您使用AJAX时,您必须确保在成功调用ajax之后更新包含文本字段的JSF页面部分。

+0

但是在'formSubmit'方法中,我得到输入字段的值来创建要在数据表中呈现的列表.. :( – NDeveloper

+1

@NGH您可以清除方法末尾的值(创建列表后在数据表中呈现) – dijkstra

+0

谢谢..我做到了。:) – NDeveloper

0

可以使用该p:的commandButton从而:

<p:commandButton action="#{myBean.method()}" value="Send" update="myForm" /> 

当我使用的属性更新= “myForm的” P的:命令按钮。 提交表单后,表单中字段的值将为空。

+0

这完全取决于你在bean中发生了什么。你发布的内容本身还不够 – Kukeltje