Dúvida c:forEach

3 respostas
X

Boa Tarde Pessoal, alguem poderia me ajudar com o seguinte erro? Estou seguindo um tutorial e me deparei com o seguinte problema.

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8" import="java.sql.*,MyCompletWebApp.Control.*,MyCompletWebApp.Dao.*"%>
<jsp:useBean id="productsBean" scope="session" class="MyCompletWebApp.Control.ProductControl"/>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!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=UTF-8">
        <title>Products</title>
    </head>
    <body>
        <h1>The Products</h1>
        <table border="1">
            <tr>
                <td>Name</td>
                <td>Price</td>
                <td>Stock</td>
                <td>Action</td>
            </tr>
            <c:forEach items="${productsBean.products}" var="product">
                <tr>
                    <td><a href="/show.jsp?name=${product.name}">${product.name}</a></td>
                    <td>${product.price}</td>
                    <td>${product.stock}</td>
                    <td><a href="/edit.jsp?name=${product.name}">Edit</a><a href="/RemovaProductServlet?name=${product.name}">Remove</a></td>
                </tr>
            </c:forEach>
        </table>
            <a href="/add.jsp">Add new product</a>
    </body>
</html>
o erro está apontando para
<c:forEach items="${productsBean.products}" var="product">
                <tr>
                    <td><a href="/show.jsp?name=${product.name}">${product.name}</a></td>
                    <td>${product.price}</td>
                    <td>${product.stock}</td>
                    <td><a href="/edit.jsp?name=${product.name}">Edit</a><a href="/RemovaProductServlet?name=${product.name}">Remove</a></td>
                </tr>
            </c:forEach>
e tá dando o seguinte erro:
HTTP Status 500 -

type 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 /products.jsp at line 29

26:                 <td>Stock</td>
27:                 <td>Action</td>
28:             </tr>
29:             <c:forEach items="${productsBean.products}" var="product">
30:                 <tr>
31:                     <td><a href="/show.jsp?name=${product.name}">${product.name}</a></td>
32:                     <td>${product.price}</td>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.el.ELException: Error reading 'products' on type MyCompletWebApp.Control.ProductControl
	javax.el.BeanELResolver.getValue(BeanELResolver.java:66)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
	org.apache.jsp.products_jsp._jspx_meth_c_005fforEach_005f0(products_jsp.java:121)
	org.apache.jsp.products_jsp._jspService(products_jsp.java:93)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.NullPointerException
	MyCompletWebApp.Control.ProductControl.getProducts(ProductControl.java:45)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
	org.apache.jsp.products_jsp._jspx_meth_c_005fforEach_005f0(products_jsp.java:121)
	org.apache.jsp.products_jsp._jspService(products_jsp.java:93)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

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

Alguem poderia me dizer como sair disso? já conferi com o do tutorial, e está igual. não sei por que não dá. quem puder ajudar agradeço.

Abço.

3 Respostas

drsmachado

Cara, ele está informando que há um problema na leitura do atributo products.
Pelo erro

MyCompletWebApp.Control.ProductControl.getProducts(ProductControl.java:45)

ele está informando que algo está nulo.
Revise e debugue seu código.

rogelgarcia

Mais especificamente linha 45 do arquivo ProductControl está o erro.

E nome de pacote é com letra minúscula.

X

Desculpem o nome do pacote com letras maiusculas hehheh falta de atenção.

Deu certo, era a conexão com o banco que não estava estabelecendo!

Abço e Obrigado.

Criado 8 de julho de 2011
Ultima resposta 8 de jul. de 2011
Respostas 3
Participantes 3