Primefaces 在 p:tabView 选项卡更改时提交表单

Primefaces submit form on p:tabView tab change

我在 WebSphere Application Server 版本 8.5.5 上使用 primefaces 版本 6.0 运行 创建了一个巨大的 JSF 应用程序。我想避免嵌套表单,因此我的 p:tabView 不包含在表单中,但每个选项卡都有自己的表单。我的选项卡视图的源代码如下所示:

      <p:tabView activeIndex="#{tabViewBean.selectedTab}" id="tabView" dynamic="true" cache="false" widgetVar="tabViewWidget">
        <p:ajax event="tabChange" listener="#{tabViewBean.handleTabChange}" update=":tabView" />
        <p:tab id="tab1" title="First tab">
            <h:form id="FirstTabForm">
                <ui:include src="/views/test/firstTabTab.xhtml"/>
            </h:form>
        </p:tab>
        <p:tab id="tab2" title="Drugi tab">
            <h:form id="SecondTabForm">
                <ui:include src="/views/test/secondTab.xhtml"/>
            </h:form>
        </p:tab>

      ... more tabs ...

    </p:tabView>

有没有一种方法可以在当前选项卡中提交表单而无需单击其中的 commandButton。我想在选项卡更改事件中实现这一点。

每个选项卡有 15-20 个输入字段,我不想在每次值更改时都使用 ajax,因为它会显着降低我的应用程序速度。

我认为您可以在 tabChange 事件中使用带有动态选择器的 process 属性。

您可以在此处查看实际效果:Ajax Framework - Partial Process