JSF + primefaces spinner ajax调用其他提交

时间:2015-05-15 08:49:31

标签: ajax jsf primefaces

我在微调器中使用ajax来调用辅助bean中的某些操作。

这是我的代码:

<b:panel>
    <p:dataTable id="orderDataTable" var="order" value="#{orderViewBean.orders}"
                 widgetVar="ordersDataTable" tableStyle="table-layout: auto;">
        <p:column headerText="Created" filterBy="#{order.creationDate}" filterStyle="display: none"
                  filterMatchMode="contains">
            <h:outputText value="#{order.creationDate}"/>
        </p:column>
        <p:column headerText="Created By" filterBy="#{order.createdBy}" filterStyle="display: none"
                  filterMatchMode="contains">
            <h:outputText value="#{order.createdBy}"/>
        </p:column>
    </p:dataTable>

    <b:panelGrid colSpans="4,4,4">
        <b:commandButton action="#{orderViewBean.previousPage}" value="Previous"
                         look="primary" process="@this:uploadOrderDataPanel" styleClass="pull-left"
                         disabled="#{!orderViewBean.page.hasPrevious()}" type="submit">
            <p:ajax immediate="true" update=":companyOrdersForm"/>
        </b:commandButton>
        <b:row>
            <div class="text-center">
                <h:outputLabel value="Page"/>
                <p:spinner value="#{orderViewBean.currentPage}" size="3"
                           min="#{orderViewBean.page.totalPages > 0 ? 1 : 0}"
                           max="#{orderViewBean.page.totalPages}">
                    <p:ajax listener="#{orderViewBean.changePageAjax}"
                            update="@form" process="@this" immediate="true"/>
                </p:spinner>
                <h:outputLabel value="Of"/>
                <h:outputText value="#{orderViewBean.page.totalPages}"/>
            </div>
        </b:row>
        <b:commandButton action="#{orderViewBean.nextPage}" value="Next"
                         look="primary" process="@this:uploadOrderDataPanel" styleClass="pull-right"
                         disabled="#{!orderViewBean.page.hasNext()}" type="submit">
            <p:ajax immediate="true" update=":companyOrdersForm"/>
        </b:commandButton>
    </b:panelGrid>
</b:panel>

当我在spinner中输入一些数字然后按Enter键时,会调用changePageAjax(这没关系),还有orderViewBean.previousPage(这不行)。我可以避免调用其他操作吗?

1 个答案:

答案 0 :(得分:0)

在相关的ajax标签上添加partialSubmit="true"属性。来自PF文档:

  

PartialSubmit通过仅将部分处理的组件添加到ajax请求帖子来减少网络流量。对于具有许多输入组件的大页面,partialSubmit非常有用,因为它会导致更轻量级的请求。比较记录器显示的后期数据的差异。

另见