我正在迭代複合組件中的項目列表。我想公開列表中的每個項目,以便它們可以在此組合組件的子組件中使用,以創建一個模板以顯示列表中的所有項目。在複合組件中迭代時暴露列表項目
這裏是我的複合組件的實現:
customList.xhtml
<ui:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets">
<cc:interface>
</cc:interface>
<cc:implementation>
...
...
<ui:repeat value="#{listRetriever.list}" var="item">
<cc:insertChildren />
</ui:repeat>
</cc:implementation>
</ui:component>
現在我想利用#{item}
,同時限定在我的網頁合成成分的子組件(類似於h:dataTable
或ui:repeat
)。
<my:customList>
#{item} <!--- over here--->
</my:customList>
只是使用'ui:decorate'的模板不是我想要的,因爲我試圖添加更多的功能,如延遲加載等(爲簡單起見,此處省略)。關於'c:forEach'我該如何公開在CC中定義的#{item}以在我使用CC的頁面上使用? –
和你的問題一樣。你所需要的只是用''代替''。 –
BalusC
實際上'#{listRetriever.list}'是使用 '構建的,我想這會發生在'c: forEach'循環已完成迭代,所以這就是爲什麼它不適用於我.. –