Problemas com Data

Tenho um campo text no meu formulário onde é preenchido data no formato dd/mm/yyyy.

Estou setando os valores dos campos do meu formulário para um bean que depois irá inserir no banco de dados.

Mas não sei o que acontece que a minha data está indo como null, os outros campos estão indo normalmente, não sei o que pode ser.

Aguém pode me ajudar.

Meu JSP:

<jsp:useBean id="Bean" class="bean.MinhaClasse" />
<jsp:setProperty name="Bean" property="*" />
.
.
.

<input type="text" size="14" name="datemissao" maxlength="14" >
.
.
.
<%
 if (request.getParameter("datemissao")!= null){  
   
      out.println("Data: "+Bean.getDatEmissao());

}
%>

Meu Bean:

package bean;

import java.util.Date;

public class MinhaClasse{

    private Date datEmissao;

   public Date getDatEmissao() {
       return datEmissao;
   }

   public void setDatEmissao(Date datEmissao) {
       this.datEmissao = datEmissao;
   }

}

vansol,

o seu input não teria que ser:

<input type="text" size="14" name="datEmissao" maxlength="14" >

no lugar de:

<input type="text" size="14" name="datemissao" maxlength="14" >

???

[]'s
carisio

Não, não é isso!

Já tentei isso e não deu certo!

vansol,

um objeto Date é construido a partir de um long, q é o número de milisegundos desde 1 de janeiro de 19(??), acho que vc não pode passar algo do tipo “dd/mm/yyyy” para ele no setDatEmissao do seu bean.

Faz o seguinte, muda o tipo do bean para String, para testar se ainda está indo null, com o nome do input correto (datEmissao).

O q eu faço pra trabalhar com data é sempre passar texto e lá na frente eu converto tudo pro tipo Date. Ah, o Date q o pessoal trabalha é o java.sql.Date e não java.util.Date, não sei pq…

[]'s
carisio

Gostaria de resolver este problema utilizando o tipo Date mesmo.

:wink:

vansol,

o q eu penso é ter, no mesmo bean, um get para uma data em string e um get para um Date mesmo, q ele pega o string do formulário e faz a conversão. Olha o código exemplo. Sei q não é isso q vc quer mas fica a idéia…

Arquivo MinhaData.java, q é um Date q pode ser inicializado com uma String e q tem o método toString reescrito para poder ficar legível na tela…

package view;

import java.sql.Date;
import java.text.SimpleDateFormat;

public class MinhaData extends Date
{
	private Date dat;
	
	public MinhaData(String data)
	{
		super(0);
		// data está no formato dd/mm/yyyy
		if (data != null)
		{
			String s = data.substring(6,10) + "-" + data.substring(3,5) + "-" + data.substring(0,2);
			setTime(Date.valueOf(s).getTime());
		}
	}
	public String toString()
	{
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		return sdf.format(this);
	}
}

Arquivo Bean.java, q é o bean q o jsp vai conversar, tem um campo de getDataString e getData, q retornar um tipo MinhaData, q não deixa de ser um tipo Date.

package view;

public class Bean
{
	private String data;;
	
	public String getDataString()
	{
		return data;
	}
	public void setDataString(String data)
	{
		this.data = data;
	}
	
	public MinhaData getData()
	{
		// Observe q o retorno aqui poderia ser Date, pois MinhaData é um Date....
		return new MinhaData(data);
	}
}

E aqui o index.jsp:

<%@ page contentType="text/html;charset=windows-1252"%>
<%@ page import="view.Bean"%>
<%@ page import="view.MinhaData"%>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>untitled</title>
  </head>
  <body>
	<form action="index.jsp">
		<jsp:useBean id="bean" class="view.Bean"/>
		<jsp:setProperty name="bean" property="dataString"/>
		DataString atual: <jsp:getProperty name="bean" property="dataString"/> <br>
		Data atual: <jsp:getProperty name="bean" property="data" /> <br>
		
		Digite a nova data:
		<input type="text" size="14" name="dataString" maxlength="14" >
		<input type="SUBMIT">
		
	</form>
  </body>
</html>

Acho q dessa forma não fica muito gambiarrado, mas caso vc descubra como faz para usar o Date direto, poste aqui pra gente! :slight_smile:

[]'s
carisio

Fiz com o código que vc enviou, deu certo!

Obrigada!!

Se eu achar alguma coisa com Date eu posto aqui no fórum.

Valeu !
:smiley:

Fiz com o código que vc enviou, deu certo!

Obrigada!!

Se eu achar alguma coisa com Date eu posto aqui no fórum.

Valeu !
:smiley:

Fiz com o código que vc enviou, deu certo!

Obrigada!!

Se eu achar alguma coisa com Date eu posto aqui no fórum.

Valeu !
:smiley: