Pessoal… estou tentando listar algumas informações do banco de dados usando dataTable… mas quando vou carregar a pagina… esta aparecendo uma informação que o meu metodo lista() nao foi encontrado… alguem poderia me dar uma forcinha?
Muito Obrigado
XHTML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
</h:head>
<h:body>
<h:form>
<p:accordionPanel>
<p:tab title="Cadastrar Contatos">
<p:panelGrid columns="2" align="right">
<f:facet name="header">
Dados
</f:facet>
<h:outputLabel value="Nome: *" />
<p:inputText value="#{contatoBean.contato.nome}" />
<h:outputLabel value="Email: " />
<p:inputText value="#{contatoBean.contato.email}" />
<h:outputLabel value="Endereço: *" />
<p:inputText value="#{contatoBean.contato.endereco}" />
<h:outputLabel value="RG: *" />
<p:inputText value="#{contatoBean.contato.rg}" />
<h:outputLabel value="CPF: *" />
<p:inputText value="#{contatoBean.contato.cpf}" />
<h:outputLabel value="Telefone: *" />
<p:inputText value="#{contatoBean.contato.telefone}" />
<f:facet name="footer">
<h:commandButton value="Enviar" action="#{contatoBean.contato.adiciona}"/>
</f:facet>
</p:panelGrid>
</p:tab>
<p:tab title="Lista Todos Contatos">
<p:dataTable id="dataTable" var="contato" value="#{contatoBean.contato.lista}">
<f:facet name="header">
Contatos
</f:facet>
<p:column id="nomeContato" sortBy="#{contato.nome}">
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
</p:column>
</p:dataTable>
</p:tab>
</p:accordionPanel>
</h:form>
</h:body>
</html>
CONTATOBEAN:
package br.com.contato;
import javax.faces.bean.ManagedBean;
import br.com.contato.connection.dao.ContatoDAO;
@ManagedBean
public class ContatoBean {
Contato contato = new Contato();
ContatoDAO dao = new ContatoDAO();
public ContatoDAO getDao() {
return dao;
}
public void setDao(ContatoDAO dao) {
this.dao = dao;
}
public Contato getContato() {
return contato;
}
public void setContato(Contato contato) {
this.contato = contato;
}
public void adiciona(Contato contato){
dao.adiciona(contato);
}
}
CONTATO:
package br.com.contato;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import br.com.contato.connection.ConnectionFactory;
public class Contato {
private long id;
private String nome;
private String email;
private String endereco;
private Calendar dataNascimento;
private String telefone;
private String rg;
private String cpf;
private ContatoBean bean;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public Calendar getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Calendar dataNascimento) {
this.dataNascimento = dataNascimento;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public ContatoBean getBean() {
return bean;
}
public void setBean(ContatoBean bean) {
this.bean = bean;
}
public void adiciona(){
Connection con = new ConnectionFactory().getConnection();
String sql="insert into tb_contato(nome_contato,email_contato,rg_contato,cpf_contato,telefone_contato,endereco_contato)" +
"values(?,?,?,?,?,?)";
try {
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, this.getNome());
stmt.setString(2, getEmail());
//stmt.setDate(3, new Date(getDataNascimento().getTimeInMillis()));
//stmt.setDate(3, new Date(getDataNascimento().getTimeInMillis()) );
stmt.setString(3, getRg());
stmt.setString(4, getCpf());
stmt.setString(5, getTelefone());
stmt.setString(6, getEndereco());
stmt.execute();
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
public List<Contato> lista(){
Connection con = new ConnectionFactory().getConnection();
List<Contato> contatos = new ArrayList<Contato>();
String sql = "select * from tb_contato";
try {
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
Contato contato = new Contato();
setId(rs.getLong("idtb_contato"));
setNome(rs.getString("nome_contato"));
setEmail(rs.getString("email_contato"));
setRg(rs.getString("rg_contato"));
setCpf(rs.getString("cpf_contato"));
setTelefone(rs.getString("telefone_contato"));
setEndereco(rs.getString("endereco_contato"));
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
ERRO:
08/04/2012 18:22:57 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet Faces Servlet threw exception
javax.el.PropertyNotFoundException: /tela-cadastro.xhtml @71,83 value="#{contatoBean.contato.lista}": Property 'lista' not found on type br.com.contato.Contato
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.component.datatable.DataTable.isLazy(DataTable.java:968)
at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:191)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:108)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
at org.primefaces.component.accordionpanel.AccordionPanelRenderer.encodeTab(AccordionPanelRenderer.java:218)
at org.primefaces.component.accordionpanel.AccordionPanelRenderer.encodeTabs(AccordionPanelRenderer.java:147)
at org.primefaces.component.accordionpanel.AccordionPanelRenderer.encodeMarkup(AccordionPanelRenderer.java:91)
at org.primefaces.component.accordionpanel.AccordionPanelRenderer.encodeEnd(AccordionPanelRenderer.java:71)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
08/04/2012 18:22:58 org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
08/04/2012 18:22:58 org.apache.catalina.core.StandardContext addApplicationListener
INFO: The listener "com.sun.faces.config.ConfigureListener" is already configured for this context. The duplicate definition has been ignored.
08/04/2012 18:22:59 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Inicializando Mojarra 2.1.7 (SNAPSHOT 20120206) para o contexto '/projetoContato'
08/04/2012 18:23:01 org.primefaces.webapp.PostConstructApplicationEventListener processEvent
INFO: Running on PrimeFaces 3.2