Tenho um objeto que possui alguns atributos simples e algumas listas de objetos
Os atributos eu consigo pegar e montar a tabela… mas as listas não…
este é meu xhtml
<p:dataTable id="tabela" value="#{reportBackingBean.genericModels}"
var="genericModel" rendered="#{reportBackingBean.showTable}">
<p:columns var="column" value="#{reportBackingBean.columns}"
columnIndexVar="colIndex">
<f:facet name="header">
#{column.header}
</f:facet>
#{genericModel[column.property]}
</p:columns>
</p:dataTable>
e aqui a parte onde a column da erro…
columns.add(new ColumnModel("Area", "areas.nome"));
O mais perto que cheguei for colocando apenas
columns.add(new ColumnModel("Area", "areas"));
Onde aparece model.Area@1302be4
É possível fazer isto pelo prime?
Senão… alguem conhece algum workaround (pra nao dizer gambiarra)
Olá,
Estou com um problema muito parecido com o seu.
Você poderia mostrar sua classe bean?
Meu xhtml é esse:
<p:dataTable id="tabelaQuantitativoExterna" emptyMessage="Busca retornou nenhum resultado" var="especialidades" value="#{exibicaoQuantitativoPCBean.listaEspecialidades}" style="width:1000px; height:1000px;">
<p:column>
<f:facet name="header">
<h:outputText value="#{exibicaoQuantitativoPCBean.dataCompleta}" />
</f:facet>
#{especialidades.sigla}
</p:column>
<p:columns value= "#{exibicaoQuantitativoPCBean.listaExibida}" var="quantitativo" columnIndexVar="colIndex">
<f:facet name="header">
#{quantitativo.hospital.sigla}
</f:facet>
#{quantitativo.listaQuantitativo[colIndex].quantidade}
</p:columns>
</p:dataTable>
O problema é que não consigo ler todas as posições da lista que está dentro de outra lista. Como você faz isso?
Eu tentei fazer isso, usando: quantitativo.listaQuantitativo[colIndex]. Eu vi que você utiliza genericModel[column.property].
Não entendi mto bem…
Mas eu estou tentando ainda descobrir uma maneira de colocar uma lista dentro da lista, utilizando uma tabela dinamica…
Consegui fazer listar mas não gostei muito do código. Deve ter algo mais simples, mas emfim …
<p:dataTable var="plc" value="#{dataTableMB.listaPlano}">
<p:column sortBy="#{plc.nome}">
<f:facet name="header">Plano de Conta</f:facet>
<h:outputText value="#{plc.nome}"/>
</p:column>
<p:columns value="#{dataTableMB.columns}"
columnIndexVar="ind"
var="column">
<f:facet name="header">
#{column.header}
</f:facet>
#{column.retornaProperty(plc)}
</p:columns>
</p:dataTable>
columns.add(new ColumnModel(Mes[0].toString(), 0));
columns.add(new ColumnModel(Mes[1].toString(), 1));
columns.add(new ColumnModel(Mes[2].toString(), 2));
static public class ColumnModel implements Serializable {
private String header;
private int mes;
public ColumnModel(String header, int mes) {
this.header = header;
this.mes = mes;
}
public String getHeader() {
return header;
}
public Double retornaProperty(PlanoConta c) {
return c.getValor()[mes];
}
}
public class PlanoConta implements Serializable{
private String nome;
private Double[] valor;