आप इसे ui:repeat
के साथ अच्छी तरह से नहीं कर सकते हैं, लेकिन आप h:dataTable
के साथ ऐसा कर सकते हैं। बैकिंग बीन में घटक को UIData
संपत्ति में बाध्य करें।
<h:dataTable binding="#{bean.table}" value="#{bean.list}" var="item">
<h:column><h:outputText value="#{bean.table.rowIndex + 1}" /></h:column>
<h:column><h:outputText value="#{item.someProperty}" /></h:column>
<h:column><h:outputText value="#{item.otherProperty}" /></h:column>
</h:dataTable>
यहाँ मैं UIData#getRowIndex()
करने के लिए 1
द्वारा जोड़ा जा रहा है क्योंकि यह है शून्य आधारित: यह एक getRowIndex()
विधि है जो वास्तव में करता है कि तुम क्या जरूरत है। डेटाटाबल्स के बारे में अधिक जानने के लिए आपको Using datatables आलेख उपयोगी हो सकता है।
आप वास्तव में तालिका लेआउट पर थोड़ा अधिक नियंत्रण चाहते हैं (विशेष रूप से colspans/rowspans, जो असली JSF h:dataTable
टैग की कमी है का उपयोग करते हुए), तो एक विकल्प JSTL c:forEach
टैग जो एक varStatus
विशेषता है उपयोग करने के लिए है जो आपको लूप स्थिति के लिए एक संभाल देता है।
<table>
<c:forEach items="#{bean.list}" var="item" varStatus="loop">
<tr>
<td><h:outputText value="#{loop.index + 1}" /></td>
<td><h:outputText value="#{item.someProperty}" /></td>
<td><h:outputText value="#{item.otherProperty}" /></td>
</tr>
</c:forEach>
</table>
मैं दूसरे दृष्टिकोण की कोशिश करूंगा। c: foreach। धन्यवाद बलुस – crazyTechie
'c: forEach' का बड़ा नुकसान यह है कि आप आसानी से तालिका में इनपुट घटकों का उपयोग नहीं कर सकते हैं। 'एच: डेटाटेबल' के साथ आप आसानी से एक संपादन योग्य डेटाटेबल बना सकते हैं और जेएसएफ पूरी तरह इकट्ठा करने और अपडेट करने के लिए सभी डेटा प्रबंधित करेगा। – BalusC