P:dataTable não para de chamar o Bean e não mostra os dados

9 respostas
Diego_Adriano

Bom Galera, estou com outro problema, quando chamo meu p:dataTable ele não para de chamar o método do Bean, há verifiquei isso com um System.out no console, ele fica rechamando o método e não exibe o resultado da consulta …
Alguem ai ja passou por isso ?

p:dataTabele

<p:panel header="Cadastro de Funções" style="margin-left:14%; width:60%;text-align: center;">
  					
  				<h:form>	
  					<p:dataTable paginator="true" paginatorPosition="bottom" rows="5"
		   			  			 id="tabela"
								 value="#{funcaoBean.funcoes}"
		  	 					 var="funcoes"	
								 emptyMessage="Nenhum dado encontrado !">
	
					<p:column headerText="ID">
					<p:resizable/>
					<p:cellEditor>
					<f:facet name="output">
					<h:outputText value="#{funcoes.id}"/>
					</f:facet>
					<f:facet name="input">
					<h:outputText value="#{funcoes.id}"/>
					</f:facet>
					</p:cellEditor>					
					</p:column>
					
					<p:column headerText="NOME">
					<p:resizable/>
					<p:cellEditor>
					<f:facet name="output">
					<h:outputText value="#{funcoes.nome}"/>
					</f:facet>
					<f:facet name="input">		 
					<p:inputText value="#{funcoes.nome}"/>
					</f:facet>
					</p:cellEditor>					
					</p:column>
					
					<p:column headerText="DESCRIÃ?Ã?O">
					<p:resizable/>
					<p:cellEditor>
					<f:facet name="output">
					<h:outputText value="#{funcoes.descricao}"/>
					</f:facet>
					<f:facet name="input">		 
					<p:inputText value="#{funcoes.descricao}"/>
					</f:facet>
					</p:cellEditor>					
					</p:column>
					
					<p:column>
					<p:rowEditor/>
					</p:column>
					
					</p:dataTable>
				
					<br/>
					<hr/>
					<p:commandButton action="update" update="painel" ajax="true" immediate="true" oncomplete="janela.show()" value="Novo"/>
					<p:commandButton action="update" update="tabela" ajax="true" immediate="true" value="Atualizar"/>					
						
				</h:form>

Função Bean

public List<Funcao> getFuncoes(){
		if (this.Funcoes == null){
			System.out.println("GETFUNCOES");
			FuncaoRepository repository = new FuncaoRepository(this.entityManager);
			this.Funcoes = repository.getFuncoes();
		}
		return this.Funcoes;
	}

Função Repository

public List<Funcao> getFuncoes(){
		Query query = this.entityManager.createQuery("select f from Funcao as f");
		return query.getResultList();
	}

9 Respostas

caputojf1

A principio parece tudo certo.
Faça o teste altere o nome da var para func e posteriormente suas chamadas…
Se não funcionar retire os <p:commandButton
Posta aí se funcionar…

Abs,

caio.gaspar

tenta colocar o atributo paginatorTemplate

<p:dataTable paginator="true" 
                paginatorPosition="bottom" rows="5"  id="tabela"  
                paginatorTemplate="{PreviousPageLink} {NextPageLink}"
                value="#{funcaoBean.funcoes}"                                   
                var="funcoes" emptyMessage="Nenhum dado encontrado!">
E

Você está usando form dentro de outro form ?

Diego_Adriano

Não não Edu … uso um form para o dataTable e um para o dialog …
Vou testar agora

Diego_Adriano

Alterei como me pediram … o paginatorTemplate, o VAR, o p:commandbutton … e mesmo assim continua a ficar chamando o metodo … mas agora exibe a consulta …

Diego_Adriano

Reescrevi o método … criei outro dataTable e continua com o mesmo problema … Mas agora na primeira vez ele chama o metodo do Bean e o repository … mas apartir da segunda ele chama somente Bean …

caputojf1

Fiz um exemplo para você entender e alterar no seu Bean descrito:

private DataModel lista;

	public DataModel getLista() {
		FuncaoRepository repository = new FuncaoRepository(this.entityManager);  
		List<Funcao> list = repository.getFuncoes(); 
		lista = new ListDataModel(list);
		return lista;
	}

	public void setLista(DataModel lista) {
		this.lista = lista;
	}

Aí no value da sua página você coloca isso:

value="#{funcaoBean.lista}"
Diego_Adriano

Obrigado mano …
Vou testar e posto o sucesso …
abraços

Diego_Adriano

Caputo … alterei como sugerei … e tive o mesmo problema …
vou mandar a mensagem do console

INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL

INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL

INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL

INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL

INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL

INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL

INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL
INFO: GETLISTA DATAMODEL

Aqui faço uma consulta para exibir apenas determinado Cliente

INFO: CHAMANDO O REPOSITORIO FUNCIONARIO

INFO: BUSCA CLIENTES
INFO: ID  1
INFO: CPF  null
INFO: REPOSITORY CONSULTA ID  1
INFO: CHAMANDO O REPOSITORIO FUNCIONARIO

Isso não pode ser algum problema do Prime que fica rendenizando a tela ??

Criado 28 de abril de 2011
Ultima resposta 30 de abr. de 2011
Respostas 9
Participantes 4