Erro em JSTL

6 respostas
natasha

Olá a todos, estou tentando adaptar um exemplo de JSTL que pegue na apostila fj21 da Caelum, mas estou tendo alguns problemas, sempre aparece o seguinte erro:

Estou usando o Eclipse e tomcat 7 e colei os 2 Jar JSTL no lib do projeto e coloquei no path
org.apache.jasper.JasperException: An exception occurred processing JSP page /testeJSTL.jsp at line 8

5: <jsp:useBean id="dao" class="banco.DaoCi"/>
6: <table>
7: <!-- for -->
8: <c:forEach var="ci" items="${dao.lista}">
9: <tr>
10: <td>${ci.numero}</td>
11:
Esse é o meu codigo no JSP:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<body>
<!-- cria a lista -->
<
</html>
Essa é meu metodo que chamo do DaoCi:
public List<Ci> getLista() {
		    try {
		    List<Ci> cis = new ArrayList<Ci>();
		    PreparedStatement stmt = this.con.prepareStatement("select * from ci");
		    ResultSet rs = stmt.executeQuery();
		   
		    while (rs.next()) {
		    // criando o objeto Contato
		    Ci ci = new Ci();
		    ci.setTitulo(rs.getString("titulo"));
		    ci.setNumero(rs.getInt("numero"));
	

		    cis.add(ci);
		    }
		   rs.close();
		   stmt.close();
		    return cis;
		    } catch (SQLException e) {
		    throw new RuntimeException(e);
		    }
		    }

O que pode ser? obrigada gente, estou começando agora

6 Respostas

AndyRamos

Olá Natasha…

Tem como postar o stacktrace inteiro da mensagem que apareceu pra você na hora do processamento do teu código ?

Valeu…

Anderson.

natasha

Olá, obrigada por responder:

Exception report

message 

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 /testeJSTL.jsp at line 8

5: <jsp:useBean id="dao" class="banco.DaoCi"/>
6: <table>
7: <!-- for -->
8: <c:forEach var="ci" items="${dao.lista}">
9: <tr>
10: <td>${ci.numero}</td>
11: 


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:517)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:427)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

org.apache.jasper.el.JspELException: /testeJSTL.jsp(8,0) '${dao.lista}' Error reading 'lista' on type banco.DaoCi
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:112)
	org.apache.jsp.testeJSTL_jsp._jspx_meth_c_005fforEach_005f0(testeJSTL_jsp.java:99)
	org.apache.jsp.testeJSTL_jsp._jspService(testeJSTL_jsp.java:70)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:73)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:378)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.NullPointerException
	banco.DaoCi.getLista(DaoCi.java:33)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	javax.el.BeanELResolver.getValue(BeanELResolver.java:64)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:55)
	org.apache.el.parser.AstValue.getValue(AstValue.java:168)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:106)
	org.apache.jsp.testeJSTL_jsp._jspx_meth_c_005fforEach_005f0(testeJSTL_jsp.java:99)
	org.apache.jsp.testeJSTL_jsp._jspService(testeJSTL_jsp.java:70)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:73)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:378)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.0 logs.
AndyRamos

Natasha,

Posta o código da classe que faz a listagem.

Valeu.

Anderson

natasha
Olá essa é a classe DaoCi que peguei para usar como exemplo:
package banco;

import java.sql.Connection;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
import java.sql.Statement;   
import java.util.ArrayList; 
import java.sql.*;

import java.util.List;

  
import javax.swing.JOptionPane;   


  
import modelo.Ci;   


public class DaoCi {
	 
	   private final String URL = "jdbc:mysql://localhost:3306/bancoci",   
	         NOME = "root", SENHA = "123456";   
	  
	   private Connection con;   
	   private Statement comando;   
	  
	   
	   
	   public List<Ci> getLista() {
		    try {
		    List<Ci> cis = new ArrayList<Ci>();
		    PreparedStatement stmt = this.con.prepareStatement("select * from ci");
		    ResultSet rs = stmt.executeQuery();
		   
		    while (rs.next()) {
		    // criando o objeto Ci
		    Ci ci = new Ci();
		    ci.setTitulo(rs.getString("titulo"));
		    ci.setNumero(rs.getInt("numero"));
	
		    cis.add(ci);
		    }
		   rs.close();
		   stmt.close();
		    return cis;
		    } catch (SQLException e) {
		    throw new RuntimeException(e);
		    }
		    }
	   
	   }
Obrigada pela ajuda
L.Bach

Olá,

O problema está aqui:

PreparedStatement stmt = this.con.prepareStatement("select * from ci");

O objeto con não foi instanciado!

Saudações

natasha

Olá, era isso mesmo, como estou adaptando essa apostila acabei me esquecendo de chamar o meu método que conecta ao banco!!
Obrigada!!

Criado 3 de setembro de 2010
Ultima resposta 6 de set. de 2010
Respostas 6
Participantes 3