坚持选择列表的目标元素(primefaces)

时间:2014-01-20 08:18:15

标签: jsf-2 primefaces picklist

我找不到如何在主要选项列表中选择元素列表(目标)。

  <p:pickList id="pojoPickList" value="#{associationMBean.allVisas}" itemValue="#{visa}" itemLabel="#{visa.visaNum}" var="visa" style="width: 400px !important" converter="com.gis.visasmarketing.objectConverters.VisaConverter"  required="true"  showSourceControls="false" showTargetControls="false" showCheckbox="true"  
                                    showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" >  
     <f:facet name="sourceCaption">All Visas</f:facet>  
     <f:facet name="targetCaption" >Selected Visas</f:facet>  
     <p:ajax event="transfer" listener="#{associationMBean.onTransfer}"  />   
     <p:column style="width:75%;">  
       #{visa.visaNum} #{visa.traveller.firstName} #{visa.traveller.lastName}
     </p:column>  
 </p:pickList> 

此选项列表工作正常:它将值从一个列表移动到另一个列表。但我不知道如何在目标列表中选择元素以使用命令按钮来保留它们。

请帮忙吗?

2 个答案:

答案 0 :(得分:3)

p:ajax没问题,如果没有调用bean,请尝试将PF更新为4.0

如果您想在命令按钮上获取选项列表目标,只需使用:picklist.getTarget();

如果您想在onTransfer事件中执行此操作,请执行以下操作:

private DualListModel<yourEntity> allVisas = new DualListModel<yourEntity>();   

public void onTransfer(){
List<yourEntity> target = allVisas.getTarget();
}

答案 1 :(得分:0)

TransferEvent有getItems()方法。它包含转移的物品。您可以使用这些方法来检查触发侦听器的事件:

  

isAdd():是从源传输到目标

     

isRemove():从目标转移到源

代码:

public void onTransfer(TransferEvent event){
     if(event.isAdd())
       //persist event.getItems()
     (...)
}