Listar dados do banco, como faço?//[RESOLVIDO]

Bem,

eu tenho uma tabela na qual já conseguir cadastrar os itens no banco de dados…mais não sei como fazer listar os dados numa tabela.

já li vários artigos e sempre ocorre erros.

PessoaDAO

// parte do codigo
 public List<Pessoa> listarTodos(){
	 Criteria criteria= session.createCriteria(Pessoa.class).addOrder(Order.asc("nome"));
	  List<Pessoa> resultado = criteria.list();
	 return resultado;
	 
 }

PessoaBean

public class PessoaBean{
	private Pessoa pessoa = new Pessoa();
	private List<Pessoa> listPessoa= null;
                private Session session = FacesContextUtil.getRequestSession();
	private PessoaDAO pessoaDAO = new PessoaDAO(session);
	
	
          public String pesquisa(){
	   if (!pessoa.getNome().equals("")){
		   listPessoa = pessoaDAO.listarTodos();
	   }
	   
	  return null; 
   }
/**get e set omitidos
}

jsp


<h:form>
<a4j:keepAlive beanName="pessoaBean"></a4j:keepAlive>
<rich:panel id="formPesquisa">
        <h:panelGrid columns="2">   
            <h:outputText value="Nome: " id ="nomePesquisa" />   
            <h:inputText value="#{pessoaBean.pessoa.nome}" style="width: 251px" />   
  
        </h:panelGrid>   
        <h:commandButton  value="Pesquisar" action="#{pessoaBean.pesquisa}" />   
   
</rich:panel>
 	
<h:dataTable  id="pessoaConsulta" 
                   var="item" value="pessoaBean.listPessoa">
		<f:facet name="header">
			<rich:columnGroup>
			   <h:column>						
			      <h:outputText id="consultanome" value="Nome"/>
			  </h:column>
			  <h:column>						
			      <h:outputText id="consultasobrenome" value="SobreNome"/>
			  </h:column>
			</rich:columnGroup>
		</f:facet>
		<h:column>
		  <h:outputText value="#{item.nome}"></h:outputText>
		</h:column>
		<h:column>				
		  <h:outputText value="#{item.sobrenome}"></h:outputText>
		</h:column>
</h:dataTable>
</h:form>

Ele não faz a pesquisa…diz não achar a propriety “item.nome”, estou usando escopo de sessão, mais mesmo assim ele fecha a sessão antes…

estou perdida com isso…
help me

Parte do erro

facescongig.xml

	<managed-bean>
		<managed-bean-name>pessoaBean</managed-bean-name>
		<managed-bean-class>br.com.siscom.controller.PessoaBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>

a Sessão ta Fechada… ja Aconteceu comigo tipo, antes meus metodos abriam uma sessao, fazia uma operação e fechava essa conexão…
e nesses metodos de de listar geralmente num precisa abrir por isso como vc fechou na operação anterior vc n tem sessão corrente pra utilizar o Criteria…
Eh Isso :D…
Ow vc tira os session.close.
ou vc abre uma sessao antes de utilizar o metodo de list.

Mudei todo o codigo e estudando sobre o assunto percebi que tenho de usar um DataModel para pegar os objetos e jogar na tabela…
entao fiz assim:

[code] a4j:form
<rich:messages />
<rich:panel id=“consulta” style=“width:500px;”>
<f:facet name=“header”>
<h:outputText value=“Pesquisar pessoa”></h:outputText>
</f:facet>
<h:panelGrid columns=“2”>
<h:outputText value=“Nome:” />
<h:inputText id=“nome” value="#{pessoaBean.pessoa.nome}">
</h:inputText>

		<h:commandButton value="Pesquisar"
		action="#{pessoaBean.getPessoas}"></h:commandButton>
								
	</h:panelGrid>
</rich:panel>

</a4j:form>
<rich:dataTable value=“pessoaBean.objetos” var=“item”>
<f:facet name=“header”>
rich:columnGroup
<h:column>
<h:outputText value=“Nome”/>
</h:column>
<h:column>
<h:outputText value=“SobreNome”/>
</h:column>
</rich:columnGroup>
</f:facet>
<h:column>
<h:outputText value="#{item.nome}"></h:outputText>
</h:column>
<h:column>
<h:outputText value="#{item.sobrenome}"></h:outputText>
</h:column>
</rich:dataTable>[/code]
meu Bean

[code] public List getPessoas(){
Session session = FacesContextUtil.getRequestSession();
InterfaceDAO pessoaDAO = new HibernateDAO
(Pessoa.class,FacesContextUtil.getRequestSession());
Pessoa pessAux = new Pessoa();
pessAux.setNome(getPessoa().getNome());
lista = pessoaDAO.getBeansByExample(pessAux);
return lista;
}
public DataModel getObjetos() {
return objetos = new ListDataModel(lista);
}

public void setObjetos(DataModel objetos) {
	this.objetos = objetos;
}

public Aluno getPessoa() {
	return pessoa;
}

public void setPessoa(Pessoa pessoa) {
	this.pessoa = pessoa;
}

[/code]

Alguém sabe sobre esse erro.
??

Amigo veja sua DataTable

&lt;rich:dataTable   value="pessoaBean.objetos" var="item"&gt;  

nao deveria ser:


&lt;rich:dataTable   value="#{pessoaBean.objetos}" var="item"&gt;  

???

OPS…corrigido o erro

<rich:dataTable   value="#{pessoaBean.objetos}" var="item">

Mas aparece essa mensagem de erro

Cara sua lista esta vazia tente assim:


# public DataModel getObjetos() {  
#     return objetos = new ListDataModel(lista);   //Aki ficou doidera lista/atribui/retorna bem fuleiro msm rsrsr
# }  

 public DataModel getObjetos() {  
    lista = pessoaDAO.getBeansByExample(pessAux);  
 return  new ListDataModel(lista);  
}

Gracias Lgweb

Alterei o codigo e deu certo…ele me lista todos os dados do bd…agora vou dá continuidade nessa tabela…quero colocar um action pra excluir e alterar…
Vlw