2013-03-01 2 views
0

안녕하세요. 목록이있는 개체 목록이 있습니다. 이걸 테이블로 반복하고 싶습니다. 이 같은.표 내부의 ADF 반복

<af:table value="#{backingBeanScope.evaluateBackingBean.subjects}" 
var="subject"> 

<af:forEach var="course" items="${subject.courses}"> 

<af:column sortable="false" 
headerText="#{evaluategyansokanviewcontrollerBundle.SUBJECT}" 
id="colSubject" width="200"> 
<af:outputText value="#{subject.name}"id="ot2"/> 
</af:column> 

<af:column sortable="false" 
headerText="#{evaluategyansokanviewcontrollerBundle.COURSE}" 
id="colCourse"> 
<af:outputText value="#{course.name}"id="ot3"/> 
</af:column> 

...

는이 코드가 작동하지 않습니다하지만 그냥 내가 원하는 아이디어를 제공하는 것을 알고있다. 당신은 JSF의 렌더링에 도착하기 전에 될 것 할 수있는 쉬운 일이 실제로 자바에서이 밖으로 평평 나에게 감사 요하네스

답변

0

. 그런 다음 테이블에 "정상적인"구문 만 있으면됩니다. 주제별 코스 그래서 어쩌면 ArrayList에 : 당신은 두 개의 데이터 레이어를 찾고 있다면

List<CourseBySubject> coursesBySubject; 

public List<CourseBySubject> getCoursesBySubject() { 
    if (coursesBySubject == null) { 
     coursesBySubject = new ArrayList<Object>(); 
     Iterator<Subject> subjectIterator = subjects.iterator(); 
     while (subjectIterator.hasNext()) { 
      Subject subject = subjectIterator.next(); 
      courses = subject.getCourses(); 
      Iterator<Course> courseIterator = courses.iterator(); 
      while (subjectIterator.hasNext()) { 
       Course course = courseIterator.next(); 
       coursesBySubject.add(new CourseBySubject(subject.name, course.name)); 
      } 
     } 

    } 
    return coursesBySubject; 

} 
0

- 데이터가있는 데이터 또는 컬렉션의 일부, 다음 AF와 컬렉션을 의미 : 테이블이 정말되지 않을 것 사용할 이상적인 구성 요소. 당신이 달성하려는 작업에 따라

, 당신은 와나는 이러한 질문들에 먼저 고려해 볼 수 있습니다 :

  1. 은 행 선택이 당신을 위해 중요한가요?
  2. 당신은 UI 레이아웃에 대한 더 많은 거라면 데이터 레이아웃

을 대 UI 레이아웃 (읽기 전용)이 더 다음 ADF는 당신이 필요로하는 것을 잘 갈 것 두 가지 구성 요소가 있습니다 :

  • AF : 반복자는
  • AF : foreach는

모두가 AF를 제외하고 아주 유사하다 : 반복자 승 유연성을 제공하면서 foreach 문은 목록 유형을 지원합니다 예를 들어 bindings.data.collectionModel과 함께 사용하는 암탉.

af : foreach는 구성 요소 바인딩을 허용하고 af : iterator는 노드를 나타내며 이는 생성 된 레이아웃이 서버 측에서 하나의 객체로만 표시됨을 의미합니다.

두 레벨로 된 테이블 기반 데이터를 찾고 있으며 행 선택이 중요하다고 가정합니다. 이 경우 af : treetable은 부모 행의 축소/축소 같은 추가 기능을 얻을 수 있으므로 최선의 방법입니다.

collectionModel (dataControl 모델) 바인딩을 사용하지 않는 경우 (일부는 의문 스러울 수 있음) POJO 컬렉션이 하위 집합 컬렉션에 접근 자 (설정자)를 제공하는지 확인하십시오.

예 : 당신은 AF를 사용할 수없는 이유

public abstract class Foo { 
    public abstract List<Country> getCountries(); 

    public static abstract class Country { 
     public abstract List<City> getCities(); 
    } 

    public static abstract class City { 
    } 
} 

그냥 경우에 당신이 궁금해 : 표는 주로 AF 때문입니다 : 트리 테이블 당신에게 부모와 자식과 사실 모두 선택할 수 있습니다, 여러분의 빈에도 차이가있는 경우를 구별 할 수 선택은 부모 대 자녀에 대한 것이 었습니다.

af : table을 사용하고 af : treeTable 기능을 놓칠 수도 있고, 사용자 정의 속성을 사용하여 선택하는 것을 구별 할 수도 있습니다.

0

af : table> af : 컬럼에서 af : 테이블을 사용할 수 있습니다. ADF 11.1.1.6까지 지원됩니다.

관련 문제