2009-06-15 16 views
1

私はList<MyClass>をループして、Spring Webflowアプリケーションの表示に表示しようとしています。しかし、私はエラーをCollection、Map、Array、またはnullに評価する必要があります。c:foreachを使用してリスト:コレクション、マップ、配列、または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; 
} 

それについての事はあり、このコードは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> 

答えて

2

は、私はあなたが

<c:forEach items="#{bookTok.orderedStuff}" var="a"> 

しようとすると、なぜあなたのリストは最終的なもので、あなたが

作成している範囲からコールする必要がありますと思いますか?

+1

finalというのは、新しいリストをリスト(orderStuffなど)の参照に割り当てることができないことを意味します。それはここで大丈夫です。 –

0

をDOES私は<c:forEach...は、これらのタイプのいずれかが必要であると思います。例えば、あなたは配列に変換しようとしたがあります。

// Create an array containing the elements in a list 
Stuff[] array = (Stuff[])orderedStuff.toArray(new Stuff[orderedStuff.size()]); 

私は、これは遠く離れている場合は、私を許して、しばらくの間、Javaで働いていません。

+0

がArrayListではない/コレクションをリストしていますか?それが私を混乱させている。 –

関連する問題