2011-06-08 57 views
0

我想知道如何將數據迭代器中的值存儲在JSF頁面中,以便我可以在單次迭代中多次使用它。讓我們說,我想在屏幕上的5個不同的地方顯示一個特定的值。迭代器JSF值

回答

0

我不確定你正在苦苦掙扎的問題。這聽起來很像您在JSP上使用JSF,並且正在使用小腳本,因爲您要在循環主體內多次重複調用Iterator#next()。這確實不起作用。調用next()顯然會返回下一個項目。您基本上只需要在循環中將其保存在一個變量中,然後多次重用該變量。但無論如何,在JSF頁面中使用scriptlets是一種巨大的氣味。

當使用JSP作爲視圖的技術,適當的方式將使用JSTL<c:forEach> tag或任何JSF UIData組件,諸如<h:dataTable>或Tomahawk的<t:dataList>。它們都提供var屬性,您可以在其中指定當前迭代項目的範圍屬性名稱。您可以在標籤正文中多次使用它。

E.g.

<c:forEach items="#{bean.list}" var="item"> 
    #{item} ... #{item} ... #{item} 
</c:forEach> 

當你使用的Facelets作爲視圖技術(其中-fortunately-不支持小腳本),你應該使用這個<ui:repeat>標籤。

<ui:repeat value="#{bean.list}" var="item"> 
    #{item} ... #{item} ... #{item} 
</ui:repeat>