Busca usando hibernate e exibição no dataTable

4 respostas
G

Pessoal,

Estou tentando a dias fazer uma pesquisa no inputText nome e exibir o resultado no dataTable, que encontra-se na mesma pagina, porém da um refresh na página e nao exibe o resultado da consulta, ja fiz o debug e passa por todo os metodos, ai vai meu código:

Pagina listaPessoa.xhtml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">

<h:head>
	<title>Pesquisa de usuario</title>
</h:head>
<h:body>
	<h1>Pesquisa de usuario</h1>
	<hr />
	<h:form>
		<h:panelGrid columns="4">

			<h:outputLabel value="Nome:" for="nome" />
			<h:inputText id="nome" Label="Nome" value="#{pessoaBean.pessoa.nome}"
				maxlength="30"  />

			<h:commandButton action="#{pessoaBean.pesquisar}" value="Buscar" />
	
		</h:panelGrid>
		<br/>
	&lt;hr /&gt;	
		&lt;h:dataTable var="p"  value="#{pessoaBean.pessoas}"&gt;
		&lt;f:facet name="header"&gt;Listagem de usuarios&lt;/f:facet&gt;
		&lt;f:facet name="footer"&gt;Final da listagem&lt;/f:facet&gt;
			&lt;h:column&gt;
				&lt;f:facet name="header"&gt;Alterar&lt;/f:facet&gt;
				&lt;h:commandLink action="#{pessoaBean.obterPessoa}" value="Alterar"&gt;
					&lt;f:setPropertyActionListener target="#{pessoaBean.pessoa.codigo}"
						value="#{p.codigo}" /&gt;
				&lt;/h:commandLink&gt;
			&lt;/h:column&gt;

			&lt;h:column&gt;
				&lt;f:facet name="header"&gt;Excluir&lt;/f:facet&gt;
				&lt;h:commandLink
					onclick="if (!confirm('Tem certeza que deseja excluir?')) return false;"
					action="#{pessoaBean.excluir}" value="Excluir"&gt;
					&lt;f:setPropertyActionListener target="#{pessoaBean.pessoa.codigo}"
						value="#{p.codigo}" /&gt;
				&lt;/h:commandLink&gt;
			&lt;/h:column&gt;

			&lt;h:column&gt;
				&lt;f:facet name="header"&gt;Nome&lt;/f:facet&gt;
				&lt;h:outputText value="#{p.nome}" /&gt;
			&lt;/h:column&gt;
			&lt;h:column&gt;
				&lt;f:facet name="header"&gt;Telefone&lt;/f:facet&gt;
				&lt;h:outputText value="#{p.telefone}" /&gt;
			&lt;/h:column&gt;
		&lt;/h:dataTable&gt;
		
		
		
	&lt;/h:form&gt;
	&lt;hr /&gt;

&lt;/h:body&gt;

&lt;/html&gt;

na classe Bean:

public DataModel&lt;Pessoa&gt; pesquisar(){ 
		ListDataModel&lt;Pessoa&gt; model = new ListDataModel&lt;Pessoa&gt;(PessoaBO.pesquisar(this.pessoa));  
	    return model; 
	}

no faces-config.xml

&lt;navigation-case&gt;
		&lt;from-action&gt;#{pessoaBean.pesquisar}&lt;/from-action&gt;
		&lt;if&gt;#{true}&lt;/if&gt;
		&lt;to-view-id&gt;/listaPessoa.xhtml&lt;/to-view-id&gt;
		&lt;redirect/&gt;
		&lt;/navigation-case&gt;

da um refresh na pagina e nao exibe dataTable com o resultado da consulta, a consulta eu coloquei um select com where simpes só pra testar.
Ja fiz o debug e passa por todas a linhas…

Eu agradeco desde ja a colaboracao de voces

4 Respostas

Hebert_Coelho

Tente fazer o seguinte.

public String buscarValor(){
    suaLista = dao.Resultado;
    return null;
}

public List<MeusObjetos> getMinhaLista(){
    return suaLista;
}

E no botão você chama o método buscarValor.

C

Verifica se esse exemplo ajuda.

http://www.primefaces.org/showcase/ui/datatableFiltering.jsf

G

Obrigado deu certo, Deus lhe page.

Hebert_Coelho

Não sei se foi minha dica mas… Amém! [=

Criado 21 de dezembro de 2011
Ultima resposta 22 de dez. de 2011
Respostas 4
Participantes 3