[RESOLVIDO]<p:datatable> do Prime não traz registros

2 respostas
leorbarbosa

Pessoal,

estou usando o datatable do prime para trazer os registros de uma consulta a um <h:inputbox …/>. Só que o método que defini para fazer a pesquisa não está sendo chamado:

no controller:

public DataModel getListagemEntregues() {
    DaoSaidaDocumento dao = new DaoSaidaDocumento();
    try {
      model = new ListDataModel(dao.listarEntregues( getParametro(), getOperador(), getFiltro().trim() ));
    } catch (Exception ex) {
      System.err.println(LogUtils.getSaida("Controle", ex, this.getClass().getName()));
    }
    return model;    
  }

na view

<p:dataTable value="#{controllerSaidaDocumento.listagemEntregues}" 
                           var="item"
                           rendered="#{controllerSaidaDocumento.listagemEntregues.rowCount > 0}"...

O datatable do prime aceita o javax.faces.DataModel?
Qual poderia ser o problema?

Obrigado.

2 Respostas

tmvolpato

Vamos lá

Não é uma boa pratica fazer isso

public DataModel getListagemEntregues() {  
      DaoSaidaDocumento dao = new DaoSaidaDocumento();  
      try {  
        model = new ListDataModel(dao.listarEntregues( getParametro(), getOperador(), getFiltro().trim() ));  
      } catch (Exception ex) {  
        System.err.println(LogUtils.getSaida("Controle", ex, this.getClass().getName()));  
      }  
      return model;      
    }

eu faria desse jeito

private DataModel<DocEntregue> listDocEntregue;
private List<DocEntregue> listDocEntregues = new ArrayList<DocEntregue> //eu nao sei como chama sua entidade coloquei assim DocEntregue

DaoSaidaDocumento dao = new DaoSaidaDocumento();  

@PostCostruct
public void init(){
try {
			listDocEntregue = dao.listarEntregues(); //Precisava ver a sua query tbm se realmente está pegando esses dados
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}


public DataModel<DocEntregue> getListDocEntregue() {
		List<DocEntregue> list = getListDocEntregues(); // pegando o metodo get da lista para não ficar carregando toda vez
		listDocEntregue = new ListDataModel<DocEntregue>(list);
		return listDocEntregue;
	}

Testa ai

leorbarbosa

vlw resolvido.

Criado 22 de junho de 2012
Ultima resposta 25 de jun. de 2012
Respostas 2
Participantes 2