2017-03-04 6 views
1

pickList dualList 객체는 객체가로드 될 때 비게됩니다. Primefaces picklist dualList 객체가 비어집니다.

은 선택 목록 정의를이다

<p:pickList id="queuesPickList" 
      value="#{manageApplications.dualListQueuesToBeAddedToTheApplication}" 
      var="queueToAdd" itemLabel="#{queueToAdd}" itemValue="#{queueToAdd}"> 
</p:pickList> 

나는 물체를 한쪽 서로를 관리 할 수 ​​오전

private List<String> queuesSouce = new ArrayList<>(); 
private List<String> queuesTarget = new ArrayList<>(); 
private DualListModel<String> dualListQueuesToBeAddedToTheApplication; 

목록 부하 제대로 문자열의 두 목록으로 구성되어 사용되는 dualList 객체 . enter image description here

이 부분까지 모든 것이 좋게 보입니다. 소스 및 대상 오브젝트가 성공적으로로드되고 선택 목록이 작동합니다. 이중 목록을 작성한 직후에 소스대상의 내용을 나열하고 있으며 둘 다 있습니다.

actionListener를 호출하여 변경 한 내용을 저장하려면 아래에 버튼이 있습니다.

<p:commandButton value="SAVE" id="saveQueuesButton" 
       actionListener="#{manageApplications.saveQueuesToTheApplication()}" 
       oncomplete="PF('dlgAddQueuesToApplication').hide();" 
       update="addQueuesToApplicationPanel"> 
</p:commandButton> 

이제 actionListener는 단지 dualList 객체의 값만 인쇄합니다.

public void saveQueuesToTheApplication() {  
      System.out.println(this.dualListQueuesToBeAddedToTheApplication.getTarget()); 
    } 

이제 모두 .target()와 .souce()는 비어 있습니다. 거기에 에 0 개체가 있습니다. enter image description here

는 컨버터가이 유형을 소유하고 처리 할 필요가 있다고 문서 Primefaces 읽기. 이후 나는 일반 바닐라 목록을 사용하고 있기 때문에 pickList 구성 요소의 네이티브 객체 인 String 목록을 만들었습니다. 변환기 클래스를 작성하는 데 신경 쓰지 않았습니다.

무엇이 잘못 되었나요?

안부, Neliosam

답변

0

코드와 잘못된 아무것도 없었다. 문제는 범위와 관련이 있습니다.

pickList가 모달 대화 상자 창에서 사용되고 있었는데 어떻게 든이 변경 사항이 dualList 구성 요소에 반영되지 않았습니다.

나는 대화 창에서 구성 요소를 제거하고 모달 대화 상자를 사용할 때이 제한 정확히 설명 할 수

렌더링 = # {booleanCondition}을 사용하여 필요한 경우에만 렌더링하는에 추가 한 그러나 구성 요소가 변수를 업데이트하지 못하게합니다.

다른 사람이 같은 문제에 직면 할 수 있도록 도와주세요.

+0

그래서 양식 안에있는 대화 상자에 선택 목록이 있습니까? 그리고 지금은 대화의 외부지만 형태로 남아 있습니까? –

+0

안녕하세요 자퀸; 양식은 고유하며 템플리트를 사용하여 페이지를 작성합니다. pickList는 처음에 모달 대화 상자 창에 설계되었으며 대화 상자 창을 사용하는 것이 제한되어 있음을 발견했습니다. 선택 목록을 필요할 때만 렌더링되는 패널에 배치하는 코드를 변경했습니다. – Neliosam

+0

대화 상자 안에 양식이 없기 때문에 나에게 소리가 나며 대화 상자는 마지막 페이지에 있습니까? 그것은 그것을하는 방법입니다 –