그래서 스프링 웹 플로우 응용 프로그램보기에 List<MyClass>
을 표시하려고 루프를 반복하려고합니다. 그러나 나는 Collection, Map, Array 또는 null로 평가되어야하는 오류를 얻는다.c : foreach using List : Collection, Map, Array 또는 null로 평가해야 함
<c:forEach items="#{orderedStuff}" var="a">
#{a.PrettyName}test
</c:forEach>
나는 # 대신 $를 시도했습니다.
다음은 내 xml 흐름 정의입니다.
<view-state id="bookToc">
<on-render>
<evaluate expression="stuffService.getOrderedStuff(stuff)" result="viewScope.orderedStuff"
result-type="dataModel" />
</on-render>
</view-state>
그리고 섹션 목록을 반환하는 함수.
public List<Stuff> getStuff(Stuff stuff) {
final List<Stuff> orderedStuff= new ArrayList<Stuff>();
final List<Stuff> sections = stuff.getStuff();
PropertyComparator.sort(sections, new MutableSortDefinition("sortOrder", true, true));
for (Section stuff : stuffs) {
orderedStuff.add(stuff);
this.addSubsectionsToOrderedStuff(stuff, orderedStuff);
}
return orderedStuff;
}
이 약 것은,이 코드는 내가 <c:forEach...
그 유형 중 하나 필요 추측 WORK
<h:dataTable id="stuffList" value="#{orderedStuff}" var="s"
rendered="#{not empty orderedStuff}">
<h:column>
<f:facet name="header">
Section Title
</f:facet>
#{s.prettyName}
<h:dataTable value="#{s.chapters}" var="c" rendered="#{not empty s.chapters}">
<h:column>
<f:facet name="header">
Chapter Title
</f:facet>
#{c.title}
</h:column>
</h:dataTable>
</h:column>
</h:dataTable>
final이라는 것은 목록 (예 : orderedStuff) 참조에 새 목록을 할당 할 수 없다는 것을 의미합니다. 여기 괜찮습니다. –