2012-07-17 2 views
2

자바에서는 for-loops를 사용하여 ArrayLists 또는 Iterables를 반복 할 수 있습니다. RichFaces에서 facelet "repeat"태그를 사용하여 ArrayList를 반복 할 수 있지만 Iterables는 반복 할 수 없습니다. Iterable을 사용하여 얻은 오류 메시지는 Iterable에있는 항목의 속성이나 메소드를 찾을 수 없다는 것입니다. RichFaces가 Java에서와 마찬가지로 Iterable을 적절한 클래스로 간주하도록 Iterable을 코딩하는 방법은 무엇입니까?RichFaces의 'repeat'태그를 사용하여 Java Iterable을 반복 처리하려면 어떻게해야합니까?

답변

4

org.richfaces.component.UISequence#createFacesModel 유효 A4J의 값 속성의 유형에 따라 : 다음과 같다 반복 (데이터 테이블 등) 및 기타 RichFaces 데이터 반복 구성 요소 (부자 : 목록, 부자) :

javax.faces.model.DataModel 
java.util.List 
java.lang.Object[] 
java.sql.ResultSet 
javax.servlet.jsp.jstl.sql.Result 

그래서,에 귀하의 경우 iterables는 java.util.List 인터페이스를 구현해야합니다.

+0

'List' 인터페이스를 구현할 때 RichFaces는 이제 내 데이터 구조를 반복 할 수 있습니다. 그러나 첫 번째 요소에서 마지막 요소까지 순차적으로 수행합니다. Iterable이 특별한 규칙 기반의 순서로리스트를 통과하는'iterator()'메소드를 작성했다. RichFaces는'List' 인터페이스를 사용할 때'iterator()'를 사용하려고 시도조차하지 않습니다. RichFaces에서 이터레이터를 사용하는 방법에 대한 제안 사항이 있습니까? –

+1

데이터 구조 구현을 많이 변경했습니다. 이제 클래스는 RichFaces 및 Iterable과 함께 사용하여 Java와 함께 사용하기 위해 List 인터페이스를 구현합니다. 나는 룰 기반 로직을 iterator 메소드에서 클래스 생성자로 옮겼다. 나중에 생성 된 아이템을 저장한다. 이는 약간의 성능 향상을 가져올 수도 있습니다. –

관련 문제