Erro com campo Data

3 respostas
AlanLojudice

Pessoal,

Eu tenho no meu formulario onde eu faço filtros, sendo que tenho campos de status, area, data. O meu problema é no campo Data. Quando o usario nao preenche o campo data ele da esse erro.
javax.servlet.ServletException: Unparseable date: ""
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

java.text.ParseException: Unparseable date: ""
	java.text.DateFormat.parse(DateFormat.java:335)
	principia.atendimento.action.cadastrar.operacional.ListarTodasOcorrenciasAction.filtraPorStatuseAreaAtuacao(ListarTodasOcorrenciasAction.java:309)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:585)
	org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
	org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
O motivo é porque quando ele passa por essa linha
Date data ;
	data = new SimpleDateFormat("dd/MM/yyyy").parse(String.valueOf(formReal.getData()));
E ve que ele esta em branco, da esse erro.

Alguem sabe como faço pra evitar esse erro???

valeu

3 Respostas

A

Eh o seguinte, vc ja esta parseando a data antes mesmo de ter recebido, eu aconselho vc receber a data primeiro dai fz um tratamento tipo se a data for vazia, nula ou outra coisa ele naum formata a data, caso contrario formata

espero ter ajudado

von.juliano

Faça uma validação que verifica se o usuário preencheu o campo, e caso ele o tenha feito, verifique se é uma data valida.

Blz? Flw! :thumbup:

AlanLojudice

Mas usando assim, da erro na linha Date data = (formReal.getData()); . Preciso antes transformar em String para data, antes de comparar. Como que faço isso??

Date data = (formReal.getData());   
	
	if(data.toString().length()>=0){
	    data = new SimpleDateFormat("dd/MM/yyyy").parse(String.valueOf(formReal.getData()));
	}

valeu

Criado 23 de janeiro de 2008
Ultima resposta 23 de jan. de 2008
Respostas 3
Participantes 3