Primefaces commandButton actionListener在notificationBar中不起作用

时间:2015-06-13 21:41:20

标签: jsf primefaces jsf-2.2

我正在使用PF 5.2作为网络应用。我想使用notificationBar来驻留一些数据输入,并使用commandButton来触发这些输入数据到辅助bean。因此我在commandBar中放了一个commandButton,但是actionListener没有调用backing bean方法。 CommandButton的定义ID为" filterBtn"。

.xhtml页面代码如下:

<h:form>
<p:notificationBar position="top" effect="slide" styleClass="top" widgetVar="bar" style="height:200px;">
    <h:panelGrid columns="1">
        <h:panelGrid id="filterGrid1" columns="4" >
            <h:outputLabel id="vhclIdLbl" value="#{general.vehicleId}"/>
            <p:inputText id="fMtsId" value="#{notifyBean.fMtsId}" style="width:200px"/>
            <h:outputLabel id="serialNoLabel" value="#{general.serialNo}"/>
            <p:inputText id="fSerialNo" value="#{notifyBean.fSerialNo}" style="width:200px"/>
            <h:outputLabel id="brandLbl" value="#{general.brand}"/>
            <p:selectCheckboxMenu id="fBrand" value="#{notifyBean.fBrands}" effect="slide" style="width:210px"
                appendTo="@this"> 
                <f:selectItem itemLabel="#{general.pleaseSelect}" itemValue=""/>  
                <f:selectItems value="#{notifyBean.brandList}"/>
            </p:selectCheckboxMenu>
            <h:outputLabel id="modelLabel" value="#{general.model}"/>
            <p:selectCheckboxMenu id="fModel" value="#{notifyBean.fModels}" effect="slide" style="width:210px"
                appendTo="@this"> 
                <f:selectItem itemLabel="#{general.pleaseSelect}" itemValue=""/> 
                <f:selectItems value="#{notifyBean.modelList}"/> 
            </p:selectCheckboxMenu>
            <h:outputLabel id="provLabel" value="#{general.province}"/>
            <p:selectCheckboxMenu id="fProvince" value="#{notifyBean.fProvinces}" effect="slide" style="width:210px" 
            filter="true" filterMatchMode="startsWith" appendTo="@this"> 
                <f:selectItem itemLabel="#{general.pleaseSelect}" itemValue=""/>  
                <f:selectItems value="#{notifyBean.provinceList}"/>
            </p:selectCheckboxMenu>
            <h:outputLabel id="regionLabel" value="#{general.region}"/>
            <p:selectCheckboxMenu id="fRegion" value="#{notifyBean.fRegions}" effect="slide" style="width:210px"
                appendTo="@this"> 
                <f:selectItem itemLabel="#{general.pleaseSelect}" itemValue=""/>
                <f:selectItems value="#{notifyBean.regionList}"/>  
            </p:selectCheckboxMenu>
        </h:panelGrid>

        <p:commandButton id="filterBtn" value="Filter" actionListener="#{notifyBean.filterByProperties()}" icon="ui-icon-arrow-1-n"/>

        <p:commandButton value="Hide" onclick="PF('bar').hide()" type="button" icon="ui-icon-arrow-1-n"/>
    </h:panelGrid>
</p:notificationBar>
</h:form>

我知道这是一个简单的组件使用,但它不起作用。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

不应将notifyBar嵌入表单中。只需交换notificationBar和表单标签,表单就在通知栏中。

<p:notificationBar position="top" effect="slide" styleClass="top" widgetVar="bar">
    <h:form>
        <p:commandButton value="yes" actionListener="#{backingBean.onDeleteButton}" onclick="PF('bar').hide()" />
        <p:commandButton value="no" onclick="PF('bar').hide()" />
    </h:form> 
</p:notificationBar>