[resolvido] Update com jstl em data

fala galera blz. eu to estudando e ate agora ta tudo bem, mais percebi uma coisa que vem dando erro no meu codigo, alias não gera erro, mas o que deveria atualizar, não atualiza.

minha pagina que é responsavel pela atualização dos dados, atualiza todos os campos, mas quando modifico o campo da data, ela continua pegando a data atual do sistema.

		// TODO Auto-generated method stub
		Long id = Long.parseLong(req.getParameter("id"));
		String nome = req.getParameter("nome");
		String email = req.getParameter("email");
		String endereco = req.getParameter("endereco");
		String dataEmTexto = req.getParameter("datanascimento"); 
		
		//conversao
		Calendar convertendo = null;
		Date data = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
		convertendo = Calendar.getInstance();
		convertendo.setTime(data);
		
		//setando os dados
		ContatosBean contato = new ContatosBean();
		contato.setId(id);
		contato.setNome(nome);
		contato.setEndereco(endereco);
		contato.setEmail(email);
		contato.setDataNascimento(convertendo);
		
		//salvando dados
		ContatosDao cd = new ContatosDao();
		cd.atualiza(contato);
		
		
		System.out.println("atualizando ...");
		return "/controle?controle=ListaMvc";

se alguem puder da uma solução ai ia ficar grato. vlws :wink:

Olhe se é datanascimento ou dataNascimento

quando pego do formulario o name do campo esta assim

<form action="controle?controle=AtualizadoMvc" method="post">
<h1> Seja Bem Vindo.</h1>

<fieldset>
<legend>cadastro de contatos.</legend>

ID:<br></br>
<input type="text" name="id" class="forminput" value="${param.id }"><br></br>
Nome:<br></br>
<input type="text" name="nome" class="forminput" value="${param.nome }"><br></br>
E-mail:<br></br> 
<input type="text" name="email" class="forminput" value="${param.email }"><br></br>
Endereço:<br></br> 
<input type="text" name="endereco" class="forminput" value="${param.endereco }"><br></br>
Data de nascimento:<br></br>
<input type="text" name="datanascimento"><br></br>
<input type="submit" value="Cadastrar" class="botao">
</fieldset>
</form>

Falta por o valor da data e nascimento, pq do jeito que tá ele ta mandando um valor nulo e não da pra converter algo nulo

como faria isso ???
porque eu coloco o valor da data no formulário só que não registra.

value=’<fmt:formatDate value="${contato.dataNascimento.time }" pattern=“dd/MM/yyyy”/>’

Isso já é o campo formatado usando
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>

vou te mostrar da onde eu estou passando para ficar mais claro

pagina para pedir atualização

<td>
			<a href="controle?controle=AtualizandoMvc&id=${contato.id }&nome=${contato.nome }&endereco=${contato.endereco }&email=${contato.email }&datanascimento=${contato.dataNascimento.time}">
				<img src="<c:url value='imagens/atualiza.png' />" width="16px" height="16px" />
			</a>
</td>

dai eu recebo atraves do get dessa url, e encaminho para a outra pagina.

Long id = Long.parseLong(req.getParameter("id"));
		String nome = req.getParameter("nome");
		String email = req.getParameter("email");
		String endereco = req.getParameter("endereco");
		String data = req.getParameter("datanascimento");
		
		
		
		System.out.println("chamando a pagina mvc-atualiza");
		return "mvc-atualiza.jsp";

feito isso eu chamo esses dados em um form para atualiza os dados

<form action="controle?controle=AtualizadoMvc" method="post">
<h1>SysCad - Seja Bem Vindo.</h1>

<fieldset>
<legend>cadastro de contatos.</legend>

ID:<br></br>
<input type="text" name="id" class="forminput" value="${param.id }"><br></br>
Nome:<br></br>
<input type="text" name="nome" class="forminput" value="${param.nome }"><br></br>
E-mail:<br></br> 
<input type="text" name="email" class="forminput" value="${param.email }"><br></br>
Endereço:<br></br> 
<input type="text" name="endereco" class="forminput" value="${param.endereco }"><br></br>
Data de nascimento:<br></br>
<input type="text" name="datanascimento" value="${param.datanascimento }"><br></br>
<input type="submit" value="Cadastrar" class="botao">
</fieldset>
</form>

mudei para o fmt mais não funcionou.

Perceba a sequencia do seu código.

  1. Recebeu os parâmetros e guardou em variáveis
  2. Imprimiu algo
  3. Retornou algo

Quando que a página recebe o id, nome, email, endereço e data?

É um formulário de pesquisa ela recebe algumas informações como nome, e-mail, endereço.

Então passei esse formulário para um controle que recebe essas requisições e depois devolve as mesmas requisições em outra pagina. Esta outra pagina esta recebendo os dados pois aparece o nome correto do id, nome, e-mail,endereço do campo que cliquei para atualizar.

Só que nessa nova pagina eu só sei utilizar EL ${param.nome} para poder receber os dados que já se encontravam na pagina de pesquisa. Até ai tudo esta de maneira correta, Só que quando atualizo esse formulário, todas as modificações são feitas apenas a de data que não muda. e sempre pega a hora do sistema.

Tenta envolver a conversão em um try-catch para ver se acusa algo.

eu realmente to muito curioso com isso. porque todos os campos mudam apenas a data que não, mas ainda acredito que deva ser algo relacionado com a data, ou a forma que eu to passando que não esta sendo recuperada.

Boa tarde galera, depois de uma bela dormida consegui resolver o problema, realmente era na forma de como estava salvando no meu Dao, na parte da data.

como estava

pstm.setDate(4, new Date(contato.getDataNascimento().getInstance().getTimeInMillis()));

como deve ficar

pstm.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));