Estou com dúvida de como fazer esse exercício, já criei a lógica de exclusão, mais esta dando erro, será que alguém pode me dar uma ajuda?
E qual o erro?
Tem essa página aqui que é a lista de contatos:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %>
Lista de Contatos<c:import url="cabecalho.jsp" />
<table border="1px">
<tr>
<th>Nome</th>
<th>E-mail</th>
<th>Endereço</th>
<th>Data de Nascimento</th>
<th colspan="2" bgcolor="grey"></th>
</tr>
<!-- percorre contatos montando as linhas da tabela-->
<!-- Antes
List<Contato> contatos = dao.getLista();
for (Contato contato : contatos) {
-->
<c:forEach items="${dao.lista }" var="contato" varStatus="id">
<tr bgcolor="#${id.count % 2 == 0 ? 'aaee88':'ffffff'}">
<td>${contato.nome}</td>
<td>
<c:choose>
<c:when test="${not empty contato.email}">
<a href="mailto:${contato.email}">${contato.email}</a>
</c:when>
<c:otherwise>
E-mail não informado.
</c:otherwise>
</c:choose>
</td>
<td>${contato.endereco}</td>
<td><fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy"/></td>
<td><a href="fj21-agenda/altera-contato.jsp">Alterar</a></td>
<td><a href="/RemoveContatoLogic?id=${contato.id}">Excluir</a></td>
</tr>
</c:forEach>
</table>
<c:import url="rodape.jsp" />
E tem essa outra que é onde acontece a lógica:
package br.com.caelum.mvc.logica;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.agenda.dao.ContatoDAO;
import br.com.caelum.agenda.modelo.Contato;
public class RemoveContatoLogic implements Logica {
@Override
public void executa(HttpServletRequest request, HttpServletResponse response)
throws Exception {
Contato contato = new Contato();
long id = Long.parseLong(request.getParameter("id"));
contato.setId(id);
ContatoDAO dao = new ContatoDAO();
dao.exclui(contato);
RequestDispatcher rd = request.getRequestDispatcher("/lista-contatos-elegante.jsp");
rd.forward(request, response);
System.out.println("Removendo contato...");
}
}
E por fim o 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 /lista-contatos-elegante.jsp at line 16
13:
14:
15:
16: <jsp:useBean id=“dao” class=“br.com.caelum.agenda.dao.ContatoDAO”></jsp:useBean>
17:
18: <c:import url=“cabecalho.jsp” />
19:
- Quando você for postar seu código aqui no guj, coloque entre as tags
- Não tenha medo de ler a mensagem de erro. Olha o ela disse: Access denied for user ‘root’@‘localhost’ (using password: YES). Bem claro. [=
erro no acesso a base dados 'java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES) ’
É verdade, obrigado! Acredito que isso eu resolvi, mais continua dando erro, e página não abre…
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: org.apache.jasper.el.JspELException: /lista-contatos-elegante.jsp(30,2) ‘${dao.lista}’ Error reading ‘lista’ on type br.com.caelum.agenda.dao.ContatoDAO
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:534)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)
root cause
org.apache.jasper.el.JspELException: /lista-contatos-elegante.jsp(30,2) ‘${dao.lista}’ Error reading ‘lista’ on type br.com.caelum.agenda.dao.ContatoDAO
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:112)
org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspx_meth_c_005fforEach_005f0(lista_002dcontatos_002delegante_jsp.java:172)
org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspService(lista_002dcontatos_002delegante_jsp.java:112)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)
root cause
java.lang.NullPointerException
java.util.Calendar.setTime(Unknown Source)
br.com.caelum.agenda.dao.ContatoDAO.getLista(ContatoDAO.java:60)
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:87)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
org.apache.el.parser.AstValue.getValue(AstValue.java:169)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:106)
org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspx_meth_c_005fforEach_005f0(lista_002dcontatos_002delegante_jsp.java:172)
org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspService(lista_002dcontatos_002delegante_jsp.java:112)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)
Alguém pode me dar uma ajuda nessa questão, por favor?
O erro é de nullpointer.
java.lang.NullPointerException
Debuga aí no seu dao para ver como está chegando.
Essa parte foi resolvida, mais ainda não consegui excluir um contato da minha tabela. Da essa mensagem:
HTTP Status 404 -
type Status report
message
description The requested resource () is not available.
Não sei se você resolveu o problema mas pelo que vi esta na url que você esta passando:
eu fiz dessa forma e deu certo…