Eu tenho um List e gostaria de passar o conteúdo para o header das colunas de um datatable e apenas inserir uma linha embaixo de cada coluna.
Estou fazendo em jsf e o laço fiz com jstl. O problema é que está sendo inseridas a quantidade de linhas referente ao numero de elementos da lista. Ou seja, se minha lista tem 3 elementos, três linhas são inseridas no datatable além do header. Não sei o motivo, apresar de aparentar ser algo bem simples.
Então, minha dúvida é como eu simplesmente percorro a minha lista para inserir seu conteúdo como cabeçalho da tabela (que necessariamente deve ser editável) e inserir para cada coluna apenas uma célula editável em branco?
segue o xhtml:
<p:dataTable var="dataRow" value="#{criaConsultaBean.colunas}"
editable="true" editMode="cell" id="rowsTable">
<p:ajax event="cellEdit" listener="#{criaConsultaBean.onCellEdit}" />
<c:forEach items="#{criaConsultaBean.colunas}" var="column"
varStatus="loop">
<p:column headerText="#{column}">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{column}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{column}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:row>
</p:row>
</c:forEach>
</p:dataTable>
E o meu bean:
@ManagedBean
@SessionScoped
public class CriaConsultaBean {
private List<String> colunas = Arrays.asList("sup1", "sup2", "sup3");
//getter and setters