【问题标题】:To refresh another JSF page on submit from one page从一个页面提交时刷新另一个 JSF 页面
【发布时间】:2013-08-29 12:28:04
【问题描述】:

我正在尝试通过提交使用 JSF 和 primefaces 构建的表单将记录添加到数据表中,该表单从包含数据表的页面弹出。提交表单时,数据会更新到数据库,但我需要刷新/更新数据表提交的数据。有什么方法可以让我从表单中引用提交的主页,以便我可以刷新/更新数据表。

包含数据表的JSF代码sn-p

<h:form id="lpcForm">
  <!-- <p:growl id="messages" showDetail="true" /> -->
  <div id="content">         
  <h:commandLink ajax="true" id="cmdLinkAdd" value="Add" action="#{lpcBean.addRecord}"
     target="_blank" update="@form" process="@this" />


     <p:dataTable var="lpcData" id="lpcDataTable" widgetVar="lpcTable"
        value="#{lpcBean.lpcIdList}" selection="#{lpcBean.selectedRows}"
        editable="true" scrollable="true" scrollWidth="1110"
        scrollHeight="330" styleClass="datatable">

              <!--Contents of the table-->
      </p:dataTable>
  </div>

点击命令链接,我会弹出网页,我可以通过它提交数据,其sn-p如下

<h:form id="addLpc">
        <p:focus context="addLpc" />
        <div align="center">


            <h:panelGrid id="addLpcForm" columns="3" >

                contents of the form
            </h:panelGrid>
        </div>
        <div align="center">
            <p:commandButton id="submitButton" value="Submit" ajax="true"
                action="#{lpcRecordAddition.formSubmit}"  />
            <h:outputText />
        </div>


    </h:form>

在提交此表单时,我需要更新其他页面中的数据表。

【问题讨论】:

  • update=":lpcForm:lpcData" 添加到您的p:commandButton
  • 如果我这样做,我会收到错误“找不到标识符为“:lpcForm:lpcData”的组件,从“addLpc:submitButton”引用
  • 也许应该是update="lpcForm:lpcData" 只需检查表单在客户端获取的ID。
  • 我在使用 update="lpcForm:lpcDataTable" 时遇到了同样的错误。lpcDataTable 是数据表的 id
  • 我看错了你的代码,当然应该是数据表ID。

标签: ajax jsf-2 primefaces


【解决方案1】:

将以下内容用于commandButton

<p:commandButton id="submitButton" value="Submit" ajax="true"
   action="#{lpcRecordAddition.formSubmit}" update=":lpcForm:lpcDataTable" />

【讨论】:

  • ajax="true" 不是必需的。这是默认值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多