Não consigo listar usando JSTL

1 resposta Resolvido
jstljava
Dayson_Rodrigues

estou acompanhando a apostila da caelum, não estou conseguindo listar todos meu objetos.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>

<!-- Adicionando JSTL  -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<!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>Agenda de contatos com JSP e JSTL</title>
</head>
<body>

	<c:import url="cabecalho.jsp" />

	<!-- cria o DAO -->
	<jsp:useBean id="dao" class="br.com.caelum.contato.ContatoDAO"/>
	<table>
		<!-- percorre contatos montando as linhas da tabela -->
		<c:forEach var="contato" items="${dao.getContatos()}">
			<tr>
				<td>${contato.nome}</td>
			</tr>
		</c:forEach>
	</table>
	<br />
	<a href="altera-contato.jsp">Adicionar</a>
	<c:import url="rodape.jsp"></c:import>
</body>
</html>

public class ContatoDAO {
	private Connection conection = null;
	private List<Contato> contatos = new ArrayList<Contato>();

	public ContatoDAO(Connection conn) {
		this.conection = conn;
	}
// RETORNAR TODOS OS CONTATOS EM UMA LIST
	public List<Contato> getContatos() {
		String sql = "SELECT * FROM contato";
		try {
			PreparedStatement stmt = conection.prepareStatement(sql);
			
			//executa um select que retorna todos os métodos do get do objeto
			ResultSet rs = stmt.executeQuery();
			while (rs.next()) {
				Contato contatoNovo = new Contato();

				contatoNovo.setId(rs.getLong("id"));
				contatoNovo.setNome(rs.getString("nome"));
				contatoNovo.setEmail(rs.getString("email"));
				contatoNovo.setEndereco(rs.getString("endereco"));

				if (rs.getDate("data_nascimento") != null) {
					Calendar dataNascimento = Calendar.getInstance();
					dataNascimento.setTime(rs.getDate("data_nascimento"));
					contatoNovo.setDataDeNascimento(dataNascimento);
				}

				this.contatos.add(contatoNovo);
			}

			stmt.close();
			rs.close();

			return this.contatos;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

Erro

GRAVE: Servlet.service() for servlet [jsp] in context with path [/fj21-agenda] threw exception [/lista-contatos.jsp (line: [19], column: [1]) The value for the useBean class attribute [br.com.caelum.contato.ContatoDAO] is invalid.] with root cause
org.apache.jasper.JasperException: /lista-contatos.jsp (line: [19], column: [1]) The value for the useBean class attribute [br.com.caelum.contato.ContatoDAO] is invalid.
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:291)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1377)
	at org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1187)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2444)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2450)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:471)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392)
	at org.apache.jasper.compiler.Generator.generate(Generator.java:3662)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:252)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:22)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at br.com.caelum.agenda.filtro.FiltroConexao.doFilter(FiltroConexao.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1368)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)

1 Resposta

Dayson_Rodrigues
Solucao aceita

Resolvido!

Criado 25 de abril de 2017
Ultima resposta 25 de abr. de 2017
Respostas 1
Participantes 1