[RESOLVIDO]Construtores para preencher uma lista

5 respostas
rapha.java

Bom dia,
Minha duvida é basica, mas não funciona. Seguinte preciso criar um construtor que popule uma lista:

public TabelaCotacaoAndamento(int i, int j, String string, String string2, String string3) { }
Ai eu modifico:

public List<TabelaCotacaoAndamento> populaListaPrincipal() { List<TabelaCotacaoAndamento> listEstatica = new ArrayList<TabelaCotacaoAndamento>(); listEstatica.add(new TabelaCotacaoAndamento(111, 1111, "Marca 1", "peca 1", "data 1")); listEstatica.add(new TabelaCotacaoAndamento(222, 2222, "Marca 2", "Peça 2", "data 2")); listEstatica.add(new TabelaCotacaoAndamento(333, 333, "Marca 3", "Peça 3", "data 3")); return listEstatica; } } Mas na hora de mostrar no datable ele não carrega! ja coloquei o value no datatable e esta tudo certo!
Porq não esta populando minha lista???

5 Respostas

Diego_Adriano

Cara .. se eu entendi vc quer que o DataTable inicie carregado, certo ?
Bem .. tenho quase certeza que vc tenha que chamar ele pelo construtor do seu Bean .. tipo:

public class meuBean{

    public meuBean(){

        populaListaPrincipal();

    }

}

Isso fara com que a lista seja carrega na criação do bean.

rapha.java
Diego Adriano:
Cara .. se eu entendi vc quer que o DataTable inicie carregado, certo ? Bem .. tenho quase certeza que vc tenha que chamar ele pelo construtor do seu Bean .. tipo:
public class meuBean{

    public meuBean(){

        populaListaPrincipal();

    }

}

Isso fara com que a lista seja carrega na criação do bean.

Na verdade não dessa forma, pois essa lista é de objetos e ela é populada na classe DAO e passada para o Bean....

Diego_Adriano

Certo, acho que entendi o que esta dizendo ...
Bem vou te mostrar um exemplo de como faço:

xHtml

<p:dataTable paginator="true"
                   paginatorPosition="bottom"
                   rows="20"
                   value="#{avaliacaoBean.avaliacoes}"
                   var="avaliacao"/>

Bean

private List<Avaliacao> 	avaliacoes;

public List<Avaliacao> getAvaliacoes(){
	if (this.avaliacoes == null){
		System.out.println("REPOSITORIO PROCURA AVALIAÇÃO");
			
		ELContext elContext = FacesContext.getCurrentInstance().getELContext();
		this.entityManager = (EntityManager)            FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "entityManager");
			
		AvaliacaoRepository repository = new AvaliacaoRepository(this.entityManager);
		this.avaliacoes = repository.getAvaliacoes();
		System.out.println("T. Av: " + avaliacoes.size());
	}
	return this.avaliacoes;
}

Repository

public List<Avaliacao> getAvaliacoes(){
	Query query = this.entityManager.createQuery("select a from Avaliacao as a");
	return query.getResultList();
}

Vê ai se ajuda ... Abraços ..

rapha.java
Diego Adriano:
Certo, acho que entendi o que esta dizendo ... Bem vou te mostrar um exemplo de como faço:

xHtml

<p:dataTable paginator="true"
                   paginatorPosition="bottom"
                   rows="20"
                   value="#{avaliacaoBean.avaliacoes}"
                   var="avaliacao"/>

Bean

private List<Avaliacao> 	avaliacoes;

public List<Avaliacao> getAvaliacoes(){
	if (this.avaliacoes == null){
		System.out.println("REPOSITORIO PROCURA AVALIAÇÃO");
			
		ELContext elContext = FacesContext.getCurrentInstance().getELContext();
		this.entityManager = (EntityManager)            FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "entityManager");
			
		AvaliacaoRepository repository = new AvaliacaoRepository(this.entityManager);
		this.avaliacoes = repository.getAvaliacoes();
		System.out.println("T. Av: " + avaliacoes.size());
	}
	return this.avaliacoes;
}

Repository

public List<Avaliacao> getAvaliacoes(){
	Query query = this.entityManager.createQuery("select a from Avaliacao as a");
	return query.getResultList();
}
Vê ai se ajuda ... Abraços ..
vlw pela ajuda, mas eu consegui resolver, faltava montar a estrutura do costrutor:
public TabelaCotacaoAndamento(int i, int j, String string, String string2,
			String string3, String string4) {
		cotacao = i;
		atendimento = j;
		marca = string;
		peca = string2;
		prazo = string3;
		detalhe = string4;
	}
Erro besta :p
Diego_Adriano

A sim claro … como eu carrego direto do banco não uso o construtor …rs
mas que bom que ajudou . abraços

Criado 26 de setembro de 2011
Ultima resposta 26 de set. de 2011
Respostas 5
Participantes 2