Oi pessoal. Ao tentar acessar a minha jsp, ocorre erro
org.apache.jasper.JasperException: /adiciona-contato.jsp(22,17) Attribute id invalid for tag campoData according to TLD
Já tentei diversas mudanças como pesquisei aqui e em outros forums, mas nao consegui fazer funcionar, preciso de ajuda.
Seguem os codigos
adiciona-contato.jsp
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib tagdir="/WEB-INF/tags" prefix="caelum" %>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
<link type="text/css" href="css/ui-lightness/jquery-ui-1.9.2.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.9.2.custom.js"></script>
</head>
<body>
<c:import url="cabecalho.jsp" />
<form action="adicionaContato">
Nome: <input type="text" name="nome" /><br />
E-mail: <input type="text" name="email" /> <br />
Endereço: <input type="text" name="endereco" /> <br />
Data Nascimento: <caelum:campoData id="dataNascimento" /><br />
<input type="submit" value="Gravar" />
</form>
<c:import url="rodape.jsp" />
</body>
</html>
campoData.tag
<input type="text" id="${id}" name="${id}" />
<script type="text/javascript">
$("#${id}").datepicker({dateFormat: 'dd/mm/yy'});
</script>
AdicionaContatoServlet.java
package br.com.caelum.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.servlet.dao.ContatoDAO;
import br.com.caelum.servlet.modelo.Contato;
public class AdicionaContatoServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//busca o writer
PrintWriter out = response.getWriter();
//buscando os parametros no request
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
String dataEmTexto = request.getParameter("datanascimento");
System.out.println(dataEmTexto);
System.out.println(nome);
Calendar dataNascimento = null;
//fazendo conversao da data
try {
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
} catch (ParseException e) {
out.println("Erro de conversao de data");
return; //para a execucao do metodo
} //fim do TRY/CATCH
//monta um objeto contato
Contato contato = new Contato();
contato.setNome(nome);
contato.setEndereco(endereco);
contato.setEmail(email);
contato.setDataNascimento(dataNascimento);
//salva o contato
ContatoDAO dao = new ContatoDAO();
dao.adiciona(contato);
//imprime o nome do contato que foi adicionado
RequestDispatcher rd = request.getRequestDispatcher("/contato-adicionado.jsp");
rd.forward(request, response);
}
}