Pessoal,
to seguindo a apostila da CAELUM, no exercício inicial sobre JSTL eu fiz tudo que está na apostila e mesmo assim continua com esse erro:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /listaContato.jsp(9,0) The value for the useBean class attribute br.com.caelum.jdbc.dao.ContatoDao is invalid.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.apache.jasper.JasperException: /listaContato.jsp(9,0) The value for the useBean class attribute br.com.caelum.jdbc.dao.ContatoDao is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1174)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3320)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
meu listaContato.jsp
[code]<%@ taglib uri = “http://java.sun.com/jsp/jstl/core ” prefix = “c” %>
Listagem
<c:forEach var=“contato” items="${dao.lista}">
nome: ${contato.nome},
email ${contato.email},
endereço ${contato.endereco}
</li>
</c:forEach>
[/code]
Sua classe ContatoDAO se encontra realmente no pacote br.com.caelum.jdbc.dao? Talvez vc tenha criado a mesma em um pacote que vc especificou e vc está passando o caminho errado da mesma.
Dê uma verificada.
Até mais!
ta no pacote certo sim. alguem pode ajudar ?
cara, também estou estudando pela mesma apostila e ontem consegui resolver meu problema. Posta aqui o seu ContatoDAO.
Abraços
ContatoDao
package br.com.caelum.jdbc.dao;
import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.model.Contato;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
public class ContatoDao {
private Connection connection;
public ContatoDao()throws SQLException {
this.connection = ConnectionFactory.getConnection();
}
public void adiciona(Contato contato) throws SQLException {
PreparedStatement stmt = this.connection.prepareStatement("insert into "+
"contato(nome,email,endereco) values (?,?,?)");
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.execute();
stmt.close();
}
public List<Contato> getLista() throws SQLException {
PreparedStatement stmt = this.connection.prepareStatement("select * from contatos");
ResultSet rs = stmt.executeQuery();
List<Contato> list = new ArrayList<Contato>();
while (rs.next()) {
Contato contato = new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
list.add(contato);
}
rs.close();
stmt.close();
return list;
}
}