Erro JSTL

4 respostas
sandokandias

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
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Listagem</title>
</head>
<body>
<jsp:useBean id="dao" class="br.com.caelum.jdbc.dao.ContatoDao" />

<c:forEach var="contato" items="${dao.lista}">
     <li>
        nome: ${contato.nome},
        email ${contato.email},
        endereço ${contato.endereco} 
        
     </li>
</c:forEach>     


</body>
</html>

4 Respostas

davidbuzatto

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!

sandokandias

ta no pacote certo sim. alguem pode ajudar ?

bsl.lacerda

cara, também estou estudando pela mesma apostila e ontem consegui resolver meu problema. Posta aqui o seu ContatoDAO.
Abraços

sandokandias

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;
	
	}
	

}
Criado 11 de agosto de 2007
Ultima resposta 16 de ago. de 2007
Respostas 4
Participantes 3