【问题标题】:Primefaces-Text box item do not disappears after form submissionPrimefaces-表单提交后文本框项不消失
【发布时间】:2012-01-24 03:53:57
【问题描述】:

我正在使用 JSF Primefaces 3.0.M3。当我提交(保存)表单时,文本框中的某些项目也没有消失。给出的是代码 -userName 和密码仍然存在 - 表单提交后。您能提出任何问题吗?

<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]+@((\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>

表单提交后输入的用户名、密码、确认密码并没有消失。附件是表单提交后的屏幕截图。

【问题讨论】:

  • 你能提供你的backing bean代码吗?特别是保存方法
  • Mr.J4mes :保存后,我调用了一个新的构造函数并清除了表单。谢谢大家。

标签: java html jsf-2 primefaces


【解决方案1】:

在 Primefaces 3.4.x 中,p:message 组件没有标签“for”。所以在你的情况下它是没用的......

【讨论】:

  • 请您详细说明您的回复以设置有助于 OP 的工作代码'
  • 答案很清楚,不值得被否决。
【解决方案2】:

您只需将绑定 bean 的范围设置为“请求”,无需重新初始化您的 bean。它会通过 JSF 生命周期自动重新初始化。

在您的情况下,我认为它的employeeRepositoryImpl,使其请求范围bean。

【讨论】:

    【解决方案3】:

    那么,您是否尝试在提交后重置所有字段?将它们插入 DB 后,尝试将它们重新初始化为 0/null。

    此外,如果您在浏览器自动完成表单方面遇到问题,请查看 inputText 标记的 Primefaces autocomplete 属性。请阅读Primefaces User Guide

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多