Primefaces 4.0:p:在compositeComponent中的ajax partialSubmit

时间:2015-02-13 09:07:52

标签: ajax jsf primefaces composite-component

我正在尝试基于JSF创建一个简单的复合组件:panelGroup: 的 filter.xhtml

 <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:composite="http://java.sun.com/jsf/composite"
        xmlns:p="http://primefaces.org/ui">

    <composite:interface>
    </composite:interface>

    <composite:implementation>
        <span>Расширенный фильтр</span>
        <h:panelGroup id="#{cc.clientId}" class="filter"
            style="background:white">
            <composite:insertChildren></composite:insertChildren>
        </h:panelGroup>
    </composite:implementation>

并放置一个必须在其中部分提交的组件。

 <h:form id="issueFilterForm" prependId="false">
        <c3:filter>
            <h:panelGrid columns="2">
                <h:outputText value="Продукт:" />
                <p:selectOneMenu value="#{issueFilterBean.selectedProd}"
                    filter="true" filterMatchMode="contains">
                    <f:selectItem itemLabel="Выберите продукт" itemValue="-1" />
                    <f:selectItems value="#{issueFilterBean.products}" var="proj"
                        itemLabel="#{proj.name}" itemValue="#{proj.id}" />
                    <p:ajax event="change" process="@this" update="@form"
                        partialSubmit="true" />

                </p:selectOneMenu>
            </h:panelGrid>
        </c3:filter>
    </h:form>

触发p:ajax调用,但不会发生部分提交。如果我删除封闭c3:filter,则提交效果很好。

如何才能避免部分提交?

0 个答案:

没有答案