0

我找不到如何保留在 primefaces 选项列表中选择的元素(目标)列表。

  <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> 

此选项列表运行良好:它将值从一个列表移动到另一个列表。但我不知道如何让目标列表中选择的元素通过命令按钮持久化。

请问有什么帮助吗??

4

2 回答 2

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();
}
于 2014-01-20T09:18:21.243 回答
0

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

isAdd() : 从源转移到目标

isRemove() :从目标转移到源

编码:

public void onTransfer(TransferEvent event){
     if(event.isAdd())
       //persist event.getItems()
     (...)
}
于 2014-01-20T09:08:31.343 回答