Apostila Caelum ---RESOLVIDO

4 respostas
V

Pessoal, sou novo no forum e em JAVA tbm. Estou seguindo a apostila da Caelum FJ21 e estou com uma certa dificuldade em scriptLet e fazer um c:forEach.

Segue abaixo o codigo:


<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

${contato.nome} ${contato.email} ${contato.endereco}
</body>

Quando acesso a pagina JSP, me da a seguinte mensagem:

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

5: <jsp:useBean id=“dao” class=“agenda.ContatoDAO”/>
6:


7:
8: <c:forEach var=“contato” items="${dao.lista}">
9:
10:
11:

root cause

org.apache.jasper.el.JspPropertyNotFoundException: /lista-contato-elegante.jsp(8,12) ‘${dao.lista}’ Property ‘lista’ not found on type agenda.ContatoDAO

Lembrando que dentro do ContatoDAO tem um método chamado lista()

Me ajudem ai. vlw

${contato.nome} ${contato.email}

4 Respostas

wbdsjunior

o método deve se chamar getLista() e não lista().

quando você faz ${bean.atributo} ou ${bean.qualquerOutroMetodoQueRetorneUmaListaPorExemplo} ele procura por um método que comece com a palavra get - getAtributo() ou getQualquerOutroMetodoQueRetorneUmaListaPorExemplo().

Carlos_ds_jar

Seu código fica legal assim:

&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt;
&lt;html&gt;
&lt;body&gt;
&lt;!-- cria a lista --&gt;
&lt;jsp:useBean id="dao" class="agenda.ContatoDAO"/&gt;
&lt;table&gt;
&lt;!-- for --&gt;
&lt;c:forEach var="contato" items="${dao.lista}"&gt;
&lt;tr&gt;
&lt;td&gt;${contato.nome}&lt;/td&gt;
&lt;td&gt;${contato.email}&lt;/td&gt;
&lt;td&gt;${contato.endereco}&lt;/td&gt;
&lt;/tr&gt;
&lt;/c:forEach&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;

e assim:

&lt;jsp:useBean id="dao" class="agenda.ContatoDAO"/&gt;
6: &lt;table&gt;
7: &lt;!-- for --&gt;
8: &lt;c:forEach var="contato" items="${dao.lista}"&gt;
9: &lt;tr&gt;
10: &lt;td&gt;${contato.nome}&lt;/td&gt;
11: &lt;td&gt;${contato.email}&lt;/td&gt;
J

fazendo um add sobre o assunto apostila Caelum, segue um link das apostilas que a Caeleum disponibilizou para download:

:wink:

V

Pessoal, vlw pelas respostas.

Na verdade, o método na classe ContatoDAO se chamava getLista().
No scriptlet estava chamando ${dao.getLista}

Só alterei o scriptlet para ${dao.lista} e funcionou legal.

Vlw

Criado 13 de agosto de 2010
Ultima resposta 13 de ago. de 2010
Respostas 4
Participantes 4