Rich:dataTable[RESOLVIDO]

11 respostas
Marcio_Nogueira

Tenho o seguinte código:

<rich:dataTable value="#{cliente.listaClientes}" var="cliente">
							<f:facet name="header">
								<h:outputLabel value="Relação de Clientes"/>
							</f:facet>
							<rich:column>
								<h:outputText value="cliente.nome"/>
							</rich:column>
							
							<rich:column>
								<h:outputText value="cliente.telefone"/>
							</rich:column>
							
							<rich:column>
								<h:outputText value="cliente.email"/>
							</rich:column>
						</rich:dataTable>

porém, o mesmo não está exibindo os dados na página.
Alguém teria uma idéia do que pode estar errado?

11 Respostas

Hebert_Coelho

O método está trazendo valor? #{cliente.listaClientes}

Marcio_Nogueira

O método de meu ClienteBean está assim:
public void setListaClientes(List<Cliente> listaClientes) { cli.setNome("Marcio"); cli.setTelefone("88727245"); cli.setEmail("[email removido]"); listaClientes.add(cli); this.listaClientes = listaClientes; }

Claro que é só para testes, pois na verdade irá buscar do banco. :wink:

Hebert_Coelho

Tudo bem, mas se você colocar um breakpoint ai ele ta trazendo valor?

Ou então faça um System.out.println(lista.size());

M

Bom, confira se você tem um metodo getListaClientes(); na sua ClienteBean.

Tem que ter, se não tiver, é esse o problema.

Marcio_Nogueira

Não dá erro, só não exibe os itens na página.
Minha data table é montada sem exibir nenhum dado.

Marcio_Nogueira

Sim, tem o método getListaClientes() em meu bean.

M

Então tente fazer assim

public List<Cliente> getListaClientes() {
                
                if (this.listaClientes == null) this.listaClientes = new ArrayList<Cliente>();

		Cliente cli = new Cliente();
                cli.setNome("Marcio");
		cli.setTelefone("88727245");
		cli.setEmail("[email removido]");
		this.listaClientes.add(cli);
		return this.listaClientes;
}

Também verifique se você mapeou ClienteBean como “cliente” no contexto na applicação.

Marcio_Nogueira

Legal, agora a dataTable é carregada! Mas aparecem nos campos clientes.nome, clientes.telefone e clientes.email ao invés de Marcio, 88727245, [email removido].

M

OK, entendi

Mude sue código para

// faça o mesmo para todos os campos
<h:outputText value="#{cliente.nome}"/>
Marcio_Nogueira

Muito obrigado a todos pela ajuda!!! :wink:

M

Ok, parabéns.

Caso já tenha resolvido o problema por completo, classifique o tópico para resolvido.

Criado 23 de novembro de 2011
Ultima resposta 23 de nov. de 2011
Respostas 11
Participantes 3