[resolvido]Erro na pesquisa com jsp e jstl

5 respostas Resolvido
tucupi

gente eu to migrando para java e ja to na parte da apostila que fala de taglib e jstl, antes de fazer esse exercicio, eu fiz com scriptlet e funciona normal. Os jar do jstl ja estao todos no projeto.

meu codigo do DAO

public List<ContatoBean> getLista(){
		String sql = "select * from contatos";
		
		try {
			
			PreparedStatement pstm = conexao.prepareStatement(sql);
			ResultSet rs = pstm.executeQuery();
			
			List<ContatoBean> lista = new ArrayList<ContatoBean>();
			
			while(rs.next()){
				ContatoBean contato = new ContatoBean();
				
				contato.setNome(rs.getString("con_nome"));
				contato.setEmail(rs.getString("con_email"));
				contato.setEndereco(rs.getString("con_endereco"));
				
				//converter data
				Calendar data = Calendar.getInstance();
				data.setTime(rs.getDate("con_data"));
				contato.setDataNascimentoCB(data);
				
				lista.add(contato);
			}
			
			rs.close();
			pstm.close();
			return lista;
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			throw new RuntimeException(e);
		}
				
	}

bom abaixo minha jsp.

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>	
<!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>Lista de contatos</title>
</head>
<body>

<jsp:useBean id="dao" class="br.com.caelum.Dao.ContatoDao" />

<table>
	<c:forEach var="listando" items="${dao.lista}">
	<tr>
		<td>${listando.nome}</td>
	</tr>
	</c:forEach>
</table>

</body>
</html>

infelizmente quando vou no navegador não acessar. se der pra alguem me ajudar ia ficar muito feliz pois ja vi todos os topicos relacionados a isso e nao deu solução nenhuma a o erro gerado é este.

HTTP Status 500 - An exception occurred processing JSP page /lista-contato.jsp at line 15

type Exception report

message An exception occurred processing JSP page /lista-contato.jsp at line 15

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /lista-contato.jsp at line 15

12: <jsp:useBean id="dao" class="br.com.caelum.Dao.ContatoDao" />
13: 
14: <table>
15: 	<c:forEach var="listando" items="${dao.lista}">
16: 	<tr>
17: 		<td>${listando.nome}</td>
18: 	</tr>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:580)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

org.apache.jasper.el.JspPropertyNotFoundException: /lista-contato.jsp(15,1) '${dao.lista}' Property 'lista' not found on type br.com.caelum.Dao.ContatoDao
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:109)
	org.apache.jsp.lista_002dcontato_jsp._jspx_meth_c_005fforEach_005f0(lista_002dcontato_jsp.java:145)
	org.apache.jsp.lista_002dcontato_jsp._jspService(lista_002dcontato_jsp.java:106)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.78 logs.

5 Respostas

jonathan.sky

Tem certeza que o caminho está correto? faz o seguinte, entre na sua classe ContatoDao e copia o caminho lá no topo o package, salve engano ele entrega o caminho correto, se estiver com o caminho completo ou não.
obs: o nome do metodo também pode está errado, como foi feito? e você implementou o retorno como List?

juniodbl

então cara, eu não faria assim. não utilize “jsp:useBean”!
crie o dao no controlador e ja carregue a lista lá.

Sobre o seu erro em especifico, verifique se o nome do pacote está correto ai, ele está com letra maiuscula: “class=“br.com.caelum.Dao.ContatoDao”” coloque letra minuscula: “class=“br.com.caelum.dao.ContatoDao””.

tucupi

o retorno dele é do tipo List sim na classe Dao. Mas sobre o caminho certo eu ja verifiquei e é o caminho correto sim.

tucupi

verifiquei a class e esta ok. sobre essa outra forma que voce falou eu ja fiz mais como estou implementando esse exercicio eu queria fazer correto e como deu o erro e esta identico ao exercicio fiquei mais curioso e determinado para descobrir onde é a falha.

tucupi
Solucao aceita

bom galera achei o erro. realmente foi o jar que estava com problema
baixei outro e deu certo muito obrigado pela ajuda e vou marca como resolvido
Up ai amigos

Criado 2 de junho de 2017
Ultima resposta 3 de jun. de 2017
Respostas 5
Participantes 3