[resolvido]Erro na pesquisa com jsp e jstl

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.

[code]<%@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”%>

Lista de contatos

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

${listando.nome}
[/code]

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.

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?

1 curtida

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””.

1 curtida

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

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.

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

1 curtida