Galera, boa tarde
Sou iniciante em java e estou fazendo um exercicio referente a jsp e em um ponto deste exercício pede para que eu formate a data, pois a mesma aparece em uma forma complicada de se ler quando eu acesso minha página…
abaixo segue minha pagina com a parte que eu estou tentando formatar a minha data, porém quando eu executo desta forma da o erro "java.text.ParseException: Unparseable date: “dataNascimento”.
<%@page import=“java.text.SimpleDateFormat”%>
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<%@ page import=“java.util.,br.com.caelum.dao.,br.com.caelum.modelo.,java.lang.” %>
CONTATOS
|
<%
ContatoDAO dao = new ContatoDAO();
List contatos = dao.getLista();
for (Contato contato : contatos) {
%>
<tr>
<td><%=contato.getNome()%></td>
<td><%=contato.getEmail()%></td>
<td><%=contato.getEndereco()%></td>
<td><%=contato.getDataNascimento()%>
<%
String dataEmTexto = request.getParameter("dataNascimento");
Date data = new SimpleDateFormat("dd/MM/yyyy").parse("dataNascimento");
%>
</td>
<tr>
<%
}
%>
Desde já agradeço a ajuda.
Está errado nessa parte
[quote]String dataEmTexto = request.getParameter(“dataNascimento”);
Date data = new SimpleDateFormat(“dd/MM/yyyy”).parse(“dataNascimento”); [/quote]
não é .parse(“dataNascimento”); e sim .parse(dataEmTexto);
Fiz a alteração porém agora está acontecendo um NullPointerException…
GRAVE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1235)
at java.text.DateFormat.parse(DateFormat.java:335)
at org.apache.jsp.lista_002dcontatos_002dscriptlet_jsp._jspService(lista_002dcontatos_002dscriptlet_jsp.java:94)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Grato pela ajuda
tem como você mostrar o código do seu servlet
djunigari, blz?
segue o meu servlet
package br.com.caelum.agenda.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.dao.ContatoDAO;
import br.com.caelum.modelo.Contato;
/**
-
Servlet implementation class AdicionaContatoServlet
*/
public class AdicionaContatoServlet extends HttpServlet {
/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
@Override
protected void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException,
IOException {
// TODO Auto-generated method stub
final PrintWriter out = response.getWriter();
final String nome = request.getParameter(“nome”);
final String endereco = request.getParameter(“endereco”);
final String email = request.getParameter(“email”);
final String dataEmTexto = request.getParameter(“dataNascimento”);
Calendar dataNascimento = null;
try {
final Date date = new SimpleDateFormat(“dd/MM/yyyy”).parse(dataEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
} catch (final java.text.ParseException e) {
// TODO: handle exception
out.println(“Erro de conversão de data”);
return;
}
final Contato contato = new Contato();
contato.setNome(nome);
contato.setEndereco(endereco);
contato.setEmail(email);
contato.setDataNascimento(dataNascimento);
final ContatoDAO dao = new ContatoDAO();
try {
dao.adiciona(contato);
} catch (final SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.println("");
out.println("");
out.println(“Contato " + contato.getNome() + " adicionado com sucesso”);
}
}
pra que esses final?
No catch há um return indevido, pois seu método ele devolve void.
Sua sobrescrita ela provavelmente não irá funcionar, pois que eu lembre o método service não possui os argumentos com o final.
to seguindo os passos do exercicio…e tem esse catch nele
então juniorcapra, seu servlet tah com erros
A NullPointerException eh pq vc não esta passando nenhuma variável “dataNascimento” no request.
djunigari este erro acontece quando eu coloco esse pedaço de código
String dataEmTexto = request.getParameter(“dataNascimento”);
Date data = new SimpleDateFormat(“dd/MM/yyyy”).parse(dataEmTexto);
estou tentando formatar a data na minha jsp.
1º - Utilize o Code para formatar seu código aqui no guj e facilicar a leitura
2º - O uso de scriplets não é recomendado, evite ao máximo. Mas se para o seu exercício for necessário usar evite fazer a formatação na JSP, formate na servlet e somente exiba o valor na JSP
Bom, vamos ao erro…
A NullPointerException provavelmente ocorre pq o dataEmTexto está nulo.
Faça o teste trocando: String dataEmTexto = request.getParameter("dataNascimento");
Por: String dataEmTexto = "26/07/2012";
Em algum lugar da servlet você tem que setar o “dataNascimento” no request… onde vc está fazendo isso? não encontrei no seu código…
Deve ser algo assim:
request.setAttribute("dataNascimento", "27/07/2012");
[quote=djunigari]pra que esses final?
No catch há um return indevido, pois seu método ele devolve void.
Sua sobrescrita ela provavelmente não irá funcionar, pois que eu lembre o método service não possui os argumentos com o final.
[/quote]
Sobre o que eu falei nesse post sua sobrescrita vai funciona sim, dei uma olhada melhor, porém não há necessidade do final nos parâmetros.
Entendi o do pq vc colokou o return.
Sua pagina não chama a Servlet AdicionaContato e a Servlet ela não está redirecionando para a pagina que está com erro.Provavelmente você nos mandou a servlet errada
Galera, obrigado pela ajuda,realmente a NullPointerException ocorre pq o dataEmTexto estava nulo.
Vlw pessoal…