Я совершенно новичок в JSF и просто пытаюсь проверить концепцию, чтобы решить, будет ли она полезна для проекта.Мой POC просто состоит из одной страницы с таблицей, содержащей некоторые данные.
Число столбцов (а также количество строк) является динамическим и загружается из базы данных до отображения страницы.
С помощью следующего я получаю два статических столбца с соответствующим количеством строк, как я и ожидал:
<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>
Я хотел добавить <c:forEach...>
вокругодин набор <h:column>...</h:column>
тегов для итерации по количеству столбцов, но это не сработало - я пробовал различные комбинации, но ожидал, что что-то подобное сработает:
<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>
ОтГугл, я читал различные расплывчатые комментарии, такие как «это не способ сделать это», но я не смог найти особо убедительных примеров правильного пути.Кто-то упомянул создание DataTable в компоненте поддержки, но единственный пример, который я смог найти, был http://forums.sun.com/thread.jspa?threadID=577589.. Он работал, но чувствовал себя немного неуклюже, тем более что некоторые из используемых методов устарели.* В настоящее время маловероятно, что я смогу использовать любые библиотеки, кроме ядра JSF, но это может измениться, если это абсолютно необходимо.Может кто-нибудь пролить свет на правильный способ сделать это?Кажется, это должно быть довольно просто, поэтому я уверен, что мне просто не хватает чего-то очевидного.