मैं जेएसएफ के लिए पूरी तरह से नया हूं, और यह तय करने के लिए अवधारणा का सबूत देने का प्रयास कर रहा हूं कि यह एक परियोजना के लिए उपयोगी होगा या नहीं। मेरे पीओसी में केवल एक पृष्ठ होता है, जिसमें एक टेबल होता है, जिसमें कुछ डेटा होता है।गतिशील कॉलम के साथ डेटाटेबल
स्तंभों की संख्या (साथ ही साथ पंक्तियों की संख्या) गतिशील है, पृष्ठ से पहले डेटाबेस से लोड किया गया है।
निम्नलिखित के साथ, मैं, पंक्तियों की उचित संख्या के साथ दो स्थिर कॉलम मिल के रूप में मैं उम्मीद थी:
<h:dataTable id="data" value="#{viewDataBean.dataRows}" var="row">
<h:column>
<f:facet name="header">
<h:outputText value="Col 1"/>
</f:facet>
<h:outputText value="#{row.values[0].value}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Col 2"/>
</f:facet>
<h:outputText value="#{row.values[1].value}"/>
</h:column>
</h:dataTable>
मुझे क्या करना चाहता था <h:column>...</h:column>
टैग का एक सेट के चारों ओर एक <c:forEach...>
जोड़ने के लिए था , स्तंभों की संख्या से अधिक पुनरावृति करने के लिए है, लेकिन यह काम नहीं किया - मैं संयोजनों की एक किस्म की कोशिश की, लेकिन मैं काम करने के लिए कुछ इस तरह उम्मीद कर रहा था:
<h:dataTable id="data" value="#{viewDataBean.dataRows}" var="row">
<c:forEach items="#{row.values}" var="val">
<h:column>
<f:facet name="header">
<h:outputText value="Col 1"/>
</f:facet>
<h:outputText value="#{val.value}"/>
</h:column>
</c:forEach>
</h:dataTable>
Googling से, मैं विभिन्न अस्पष्ट टिप्पणियों पढ़ा है जैसे 'ऐसा करने का तरीका नहीं है', लेकिन मैं सही तरीके से किसी विशेष रूप से आकर्षक उदाहरण नहीं ढूंढ पा रहा हूं। किसी ने बैकिंग बीन में डेटाटेबल बनाने का उल्लेख किया है, लेकिन इसका एकमात्र उदाहरण मुझे मिल सकता है http://forums.sun.com/thread.jspa?threadID=577589। यह काम करता था, लेकिन बेकार महसूस किया, खासकर जब इस्तेमाल की जाने वाली कुछ विधियों को हटा दिया गया है।
फिलहाल, यह संभावना नहीं है कि मैं कोर जेएसएफ के अलावा किसी भी पुस्तकालय का उपयोग करने में सक्षम हूं, लेकिन यदि आवश्यक हो तो यह बदल सकता है। क्या कोई ऐसा करने के लिए सही तरीके से कोई प्रकाश डाल सकता है? ऐसा लगता है कि यह बहुत आसान होना चाहिए, इसलिए मुझे यकीन है कि मैं बस कुछ स्पष्ट याद कर रहा हूं।