Olá, estou tentando criar uma tabela editável em jsf com primefaces.
Esta tabela deve ser dinâmica, ou seja, deve receber o header como uma Lista de String e para coluna, receber outra Lista de String com o conteúdo.
Mas o conteúdo da minha tabela não está sendo mostrado, apenas o header.
Alguém poderia me ajudar?
Abaixo segue meu código e também uma imagem do resultado que estou tendo e do resultado que eu desejo .
meu bean:
@ManagedBean
@SessionScoped
public class CriaTotalizadorBean {
private List<String> colunas = new ArrayList<String>();
private List<String> operacoes = new ArrayList<String>();
public CriaTotalizadorBean(){
colunas.add("coluna1");
colunas.add("coluna2");
colunas.add("coluna3");
colunas.add("coluna4");
operacoes.add("op1");
operacoes.add("op2");
operacoes.add("op3");
operacoes.add("op4");
operacoes.add("op5");
operacoes.add("op6");
//getters and setters
}
Meu xhtml:
<h:form id="frmConResCad">
<h:panelGrid id="pnlConResCad">
<p:dataTable value="#{criaTotalizadorBean.colunas}" var="coluna" editable="true" editMode="cell">
<c:forEach items="#{criaTotalizadorBean.colunas}" var="column">
<p:column headerText="#{column}">
</p:column>
</c:forEach>
<c:forEach items="#{criaTotalizadorBean.operacoes}" varStatus="operacao">
<c:forEach items="#{criaTotalizadorBean.colunas}" var="coluna">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{operacao}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{operacao}" />
</f:facet>
</p:cellEditor>
</c:forEach>
</c:forEach>
</p:dataTable>
</h:panelGrid>
</h:form>
Resultado que está aparecendo:
Resultado que eu quero: