0

システムを検索する検索機能があります。検索を実行した後、リストを選択するために検索結果を更新しています。検索するたびに、pickList ソースを更新します。今私の問題は、複数の値が選択リストターゲットに追加された場合にエラーメッセージが表示され、選択リストターゲットの重複エントリについてもチェックするように検証したいことです。

以下はxhmtlのピックリストのコードです

    <p:pickList id="primaryContactBean" value="#{addSystemManagedBean.primaryContactList}" var="contact" itemLabel="#{contact.firstName}" itemValue="#{contact}" converter="contactConverter" >
   <p:ajax event="transfer" listener="#{addSystemManagedBean.onTransfer}" process="@this"          update="sysMsg3" />
  <p:column>
     #{contact.firstName} #{contact.lastName}
   </p:column>
</p:pickList>

および onTransfer 次のメソッドが呼び出されます

public int primaryOwnerCount = 0;
    public void onTransfer(TransferEvent event) {
        PickList picklist = (PickList) event.getComponent();
            for(Object item : event.getItems()) {  
                ContactBean cb = (ContactBean)item;
                if(picklist.getId().equals("primaryContactBean")){
                    if(event.isAdd())
                    primaryOwnerCount++;
                    if(primaryOwnerCount>1){
                        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Only one primary owner can exist!!","If you want to add owner, please remove from the list and then proceed.."));
                        for (Iterator iterator = primaryContactList.getTarget().iterator(); iterator
                                .hasNext();) {
                            ContactBean type = (ContactBean) iterator.next();
                            System.out.println("target:"+type.getFirstName());
                        }


                    }

                    else
                        primaryContactTarget.add(cb);
                }
4

0 に答える 0