2011-12-20 50 views
0

我正在使用JSF Primefaces 3.0.M3。當我提交(保存)表單時,文本框中的某些項目也不會消失。鑑於代碼-userName和密碼仍然存在 - 表單提交後。你能提出任何問題嗎?Primefaces-文本框項目在表單提交後不會消失

<h:form id="formId" prependId="false"> 
      <p:wizard flowListener="#{employeeRepositoryImpl.handleFlow}" 
       showNavBar="true" widgetVar="scheduler" showStepStatus="false"> 
       <p:tab id="personal"> 
       <p:panel header="Login Credentials"> 
        <!-- <p:messages showDetail="true" autoUpdate="true"/> --> 
        <h:panelGrid columns="3" autoUpdate="false"> 

         <h:outputText value="First Name*" /> 
         <p:inputText 
          value="#{employeeRepositoryImpl.employee.firstName}" 
          required="true" label="First Name" id="firstName" 
          validatorMessage="Invalid First Name" 
          onblur="changeCase(this)"> 
          <f:validateRegex 
          pattern="^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$" /> 
          <p:ajax event="blur" update="firstName" /> 
         </p:inputText> 
         <p:message id="msg4" for="firstName" /> 

         <h:outputText value="Middle Name" /> 
         <p:inputText 
         value="#{employeeRepositoryImpl.employee.middleName}" 
         label="Middle Name" id="middleName" onblur="changeCase(this)" /> 
         <p:message id="msg5" for="middleName" /> 

         <h:outputText value="Last Name*" /> 
         <p:inputText 
          value="#{employeeRepositoryImpl.employee.lastName}" 
          required="true" label="Last Name" id="lastName" 
         validatorMessage="Invalid Last Name"onblur="changeCase(this)"> 
          <f:validateRegex pattern="^[A-Z][a-zA-Z]*$" /> 
          <p:ajax event="blur" update="lastName" /> 

         </p:inputText> 
         <p:message id="msg6" for="lastName" /> 

         <h:outputText value="Employee Code*" /> 
         <p:inputText 
          value="#{employeeRepositoryImpl.employee.employeeCode}" 
          required="true" label="Employee Code" id="employeeCode"> 
          <p:ajax event="blur" update="employeeCode" /> 
         </p:inputText> 
         <p:message id="msg7" for="employeeCode" /> 

         <h:outputText value="User Name*" /> 
         <p:inputText 
          value="#{employeeRepositoryImpl.securityPrincipals.userName}" 
          required="true" label="User Name" id="userName" 
          validatorMessage="Invalid Email ID"> 

          <f:validateRegex 
          pattern="^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9][email protected]((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$" /> 

          <p:ajax event="blur" update="userName" /> 
         </p:inputText> 
         <p:message id="userNameId" for="userName"/> 

         <h:outputText value="Password*" /> 
         <p:password 
          value="#{employeeRepositoryImpl.securityPrincipals.password}" 
          match="confirmPassword" required="true" label="Password" 
          id="password" for="password"> 
          <p:ajax listener="#{employeeRepositoryImpl.handlePW}" 
          update="password" /> 
         </p:password> 
         <p:message id="msg8" for="password" /> 

         <h:outputText value="Confirm Password*" for="confirmPassword" /> 
         <p:password 
          value="#{employeeRepositoryImpl.securityPrincipals.confirmPassword}" 
          required="true" label="Confirm Password" id="confirmPassword" 
          onkeyup="checkPass(); return false;"> 
          <p:ajax listener="#{employeeRepositoryImpl.handlePW}" 
          update="confirmPassword" /> 
         </p:password> 
         <p:message id="msg" for="confirmPassword" display="text" /> 

        </h:panelGrid> 
       </p:panel> 
       </p:tab> 
       </p:wizard 
      <h:commandButton value="Submit" 
       actionListener="#{employeeRepositoryImpl.save}" immediate="true">     
      </h:commandButton> 

     </h:form> 

的用戶名,密碼,confirmPassword進入不消失即使在形式submission.Attached是表單提交後一個屏幕截圖enter image description here

+0

你能提供你的支持bean代碼嗎?尤其是保存方法 – 2011-12-20 21:43:05

+0

Mr.J4mes:保存之後,我調用了一個新的構造函數,表單被清除。感謝所有。 – NaaN 2011-12-21 03:52:10

回答

1

那麼,你有沒有嘗試重置提交後的所有領域?將它們插入數據庫後,請嘗試將它們重新初始化爲0/null。

此外,如果您在瀏覽器自動完成表單中遇到問題,請參閱inputText標記的Primefaces 自動完成屬性。請閱讀Primefaces User Guide

0

您只需要將綁定bean的作用域設置爲「請求」,不需要重新初始化您的bean。它將通過JSF生命週期自動重新初始化。

在你的情況,我認爲它的employeeRepositoryImpl,使它請求作用域bean。

0

在Primefaces 3.4.x中,p:消息組件沒有標籤'for'。所以這對你的情況沒用......

+0

請你能否詳細說明你的回覆,以設置一個工作代碼,以幫助OP' – RamonBoza 2013-10-22 08:29:26

+0

答案如此清晰,不應該被拒絕投票。 – 2013-12-23 09:52:41