Jsf 2 选择列表:如何检索要添加或删除的选定项

Jsf 2 选择列表:如何检索要添加或删除的选定项,jsf-2,primefaces,managed-bean,Jsf 2,Primefaces,Managed Bean,我正在处理挑选名单这是我的代码: xhtml代码: <p:pickList id="pickList" value="#{projectAdminisrationMB.selectedUserGroups}" var="group" itemLabel="#{group}" itemValue="#{group.name}" converter="groupConverter" &

我正在处理挑选名单这是我的代码:

xhtml代码:

    <p:pickList id="pickList" value="#{projectAdminisrationMB.selectedUserGroups}" 
          var="group"   
            itemLabel="#{group}" itemValue="#{group.name}" 
            converter="groupConverter"
            > 
             <f:facet name="sourceCaption">Belong To</f:facet>  
             <f:facet name="targetCaption">Exclude From</f:facet> 

              <p:column style="width:25%">  
                    <p:graphicImage value="/images/group/#{group.name}.gif" />  
               </p:column>  

             <p:column style="width:75%;">  
                  #{group.name}  
             </p:column> 
              <p:ajax event="transfer" listener="#
          {projectAdminisrationMB.onTransferGroup}" update="growl" />  
             </p:pickList> 
我的目标是从选择列表中检索添加或删除的项 OnTransferGroup方法:

 public void  onTransferGroup(TransferEvent event) { 

     if(event.isAdd()){

         String resMsg;
            System.out.println("dropped group to be excluded");

             for(Object item : event.getItems()) { 

                    Group selectedBelongToGroup =(Group) item;




    resMsg=administrationProjectFinal.exclureUserGroupFn(selectedBelongToGroup 
     ,selectedUserRow);

                    if (resMsg.equals("The project should have at least 
                               one administrator"))
                    {setDeleteGroupFlag(true);
                     showErrorMsg(resMsg);
                    }

                   else droppedBelongToGroups.add(selectedBelongToGroup); 

                }
         }


     else if(event.isRemove()){
         System.out.println("remove");
         System.out.println("dropped group to be included");
         for(Object item : event.getItems()) {  

        Group selectedExcludeFromGroup = ((Group)item); 
        System.err.println(" n" +selectedExcludeFromGroup.getName());
        System.err.println("d "+selectedExcludeFromGroup.getDescription());



       droppedExcludeFromToGroups.add(selectedExcludeFromGroup); 

        administrationProjectFinal.inclureUserGroup(selectedExcludeFromGroup 
        ,selectedUserRow);

         }



     }                   

         }  
问题是event.getItems()列表始终为空。 当我第一次挑东西的时候,onTransferGroup(TransferEvent事件)不是午餐,但在那之后它就很幸运了

因此,如何检索要添加或删除的选定项

在“getAsObject”方法的第一条语句中添加一个“return”,这样它就不会到达逻辑的其余部分。
另外,如果您从getItems方法中得到一个null返回值,这肯定意味着转换器问题,所以请检查上面的内容

 public void  onTransferGroup(TransferEvent event) { 

     if(event.isAdd()){

         String resMsg;
            System.out.println("dropped group to be excluded");

             for(Object item : event.getItems()) { 

                    Group selectedBelongToGroup =(Group) item;




    resMsg=administrationProjectFinal.exclureUserGroupFn(selectedBelongToGroup 
     ,selectedUserRow);

                    if (resMsg.equals("The project should have at least 
                               one administrator"))
                    {setDeleteGroupFlag(true);
                     showErrorMsg(resMsg);
                    }

                   else droppedBelongToGroups.add(selectedBelongToGroup); 

                }
         }


     else if(event.isRemove()){
         System.out.println("remove");
         System.out.println("dropped group to be included");
         for(Object item : event.getItems()) {  

        Group selectedExcludeFromGroup = ((Group)item); 
        System.err.println(" n" +selectedExcludeFromGroup.getName());
        System.err.println("d "+selectedExcludeFromGroup.getDescription());



       droppedExcludeFromToGroups.add(selectedExcludeFromGroup); 

        administrationProjectFinal.inclureUserGroup(selectedExcludeFromGroup 
        ,selectedUserRow);

         }



     }                   

         }