Erro org.apache.jasper.JasperException

Olá, estou estudando a apostila Fj21 da Caelum e estou com problemas no exercício 9.8 - Exercícios: Lógica para alterar contatos.

  1. Crie uma nova classe chamada AlteraContatoLogic no mesmo pacote br.com.caelum.mvc.logica. Devemos
    implementar a interface Logica e durante sua execução altere o contato no banco a partir do id indicado.

Aqui está a minha classe:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.caelum.jdbc.modelo.Contato;
import br.com.caelum.jdbc.modelo.ContatoDAO;

public class AlteraContatoLogic implements Logica {
public void executa(HttpServletRequest request, HttpServletResponse response)
throws Exception {
Contato contato = new Contato();
long id = Long.parseLong(request.getParameter(“id”));
contato.setId(id);
contato.setNome(request.getParameter(“nome”));
contato.setEndereco(request.getParameter(“endereco”));
contato.setEmail(request.getParameter(“email”));

	// Converte a data de String para Calendar

	String dataEmTexto = request.getParameter("dataNascimento");
	Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);

	Calendar dataNascimento = Calendar.getInstance();
	dataNascimento.setTime(date);
	contato.setDataNascimento(dataNascimento);
	ContatoDAO dao = new ContatoDAO();
	dao.atualiza(contato);

	RequestDispatcher rd = request
			.getRequestDispatcher("/lista-contatos-elegante.jsp");
	rd.forward(request, response);

	System.out.println("Alterando contato ..." + contato.getNome());
}

}

  1. Crie uma nova página chamada altera-contato.jsp através do método POST que chama a lógica criada no
    exercício anterior.

Aqui o altera-contato.jsp dentro do WebContent

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@ taglib tagdir="/WEB-INF/tags" prefix=“caelum”%>

<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

Insert title here
<c:import url="cabecalho.jsp" />
Formulário para alteração de contatos:
<br />
<form action="mvc" method="POST">
	Id: <input type="text" name="id" /><br /> Nome: <input type="text"
		name="nome" /><br /> E-mail: <input type="text" name="email" /><br />
	Endereço: <input type="text" name="endereco" /><br /> Data de
	Nascimento:
	<caelum:campoData id="dataNascimento" />
	<input type="hidden" name="logica" value="AlteraContatoLogic" /> <input
		type="submit" value="Enviar" />
</form>

<c:import url="rodape.jsp" />

Porém, na hora de testar a url http://localhost:8080/fj21-agenda/altera-contato.jsp diz que o link esta corrompido
e no console aparece o erro
[color=red]GRAVE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /altera-contato.jsp(21,20) Attribute id invalid for tag campoData according to TLD[/color]

Alguém sabe o que pode ser?