PrimeFaces CommandLink不会仅更新组件及其操作调用一次

时间:2013-11-04 12:44:42

标签: primefaces jsf-2.2

我有 p:dataTable 并包含commandLinks。

<h:form id="defVhclForm">
<p:dataTable id="vehicleTable" var="vhcl" value="#{vehicle.vehicleList}"
    scrollable="true" scrollHeight="520">
    <p:column id="trackId" label="#{general.vehicleName}" width="120" style="spacing:0;padding-left:10px;border:0px">

        <p:commandLink id="editLink" immediate="true" value="#{vhcl.vehicle.vehicleName}" title="#{general.editVehicleInfo}" 
            action="#{vehicle.vehicleSelected}" style="font-weight:bold; font-size:11px;" 
            update="@form"/>    
        <br />
        <h:outputText id="vehicleId" value="#{vhcl.vehicle.mtsTrackId}" title="#{general.vehicleId}" style="font-size:10px; color:blue;" />
        <br/>
        <h:outputText value="#{vhcl.vehicle.vehiclePlate}" id="vehiclePlate" title="#{general.licencePlate}" style="font-size:10px; color:blue"/>
        <h:inputHidden value="#{vhcl.vehicle.mtsTrackId}" id="mtsTrackId"/>
    </p:column>
</p:dataTable>

 <p:tabView id="tabView" styleClass="tableCellHeader" style="align:left">  
<p:tab id="vehicleDefinitionTab" title="#{general.vehicle}" styleClass="tableCellHeader">
    <h:panelGrid id="mainGrid" columns="2" columnClasses="alignTop, alignTop">
        <h:panelGrid id="subGrid" columns="4">
            <h:outputLabel id="vhclIdLbl" value="#{general.vehicleId}:"/>
            <p:inputText id="vehicleIdTxt" binding="#{vehicle.vehicleIdTxt}" style="width:150px;"/>
            <h:outputLabel id="vhclPlateLbl" value="#{general.licencePlate}:"/>
            <p:inputText id="vehiclePlateTxt" binding="#{vehicle.vehiclePlateTxt}" style="width:150px;"/>
            <h:outputLabel id="vhclNameLbl" value="#{general.vehicleName}:"/>
            <p:inputText id="vehicleNameTxt" binding="#{vehicle.vehicleNameTxt}" style="width:150px;"/>
            <h:outputLabel id="vhclTypeNameLbl" value="#{general.vehichleType}:"/>
            <p:selectOneMenu id="vhclTypeCmb" binding="#{vehicle.vehicleTypeCmb}" styleClass="tableCell" effect="slide" style="width:157px"> 
                <f:selectItem itemLabel="#{general.pleaseSelect}" itemValue="" styleClass="tableCell"/> 
                <f:selectItems value="#{vehicle.vehicleTypeCmbList}" styleClass="tableCell"/> 
            </p:selectOneMenu>
        </h:panelGrid>
        <!--  <p:graphicImage value="#" width="120px" height="80px"/>-->
    </h:panelGrid>
</p:tab>  
<p:tab id="registrationTab" title="#{general.auth}" styleClass="tableCellHeader">

</p:tab>
</:tabView>

</h:form>

按下commandLink,应更新一些 p:tab 并填写相关数据。每个组件都在同一个 h:form 中。按commandLink不会更新相关的 p:选项卡。此外,commandLink操作只调用bean方法一次。不止一次按下不会调用bean方法。

我该如何解决这个问题?

0 个答案:

没有答案