Minha classe modelo nao recebe data de um datepicker

Boa tarde,

Como faço pra gravar uma determinada data no banco utilizando o datepicker + Struts 2 ?


Data de finalizacao:<br />
<minhaTag:campoData id="dataFinalizacao" />

minha tagfile:


<%@ tag language="java" pageEncoding="UTF-8"%>

<%@ attribute name="id" required="true" %>

<input type="text" id="${id}" name="${id}" />

<script type="text/javascript">

$(function() {
	$( "#${id}" ).datepicker({
		changeMonth: true,
		changeYear: true,
		dateFormat: 'dd/mm/yy'
	});
});
</script>

Apos escolher a data no datepicker, clico no botao enviar e a data permanece no banco como null.

ai se faço:

Data de finalizacao:<br />
<minhaTag:campoData id="tarefa.dataFinalizacao" />

o datepicker nao aparece.

Alguem pode dar uma força ?

Estou com esse mesmo problema.

Idem

Também estou com a mesma impossibilidade.

Seguindo a apostila da Caelum, consegui implementar o datepicker no capítulo 8 com sucesso e sem problemas.

Mas no capítulo 11 (no tópico 11.16, pág.147) não tive sucesso.

Consigo fazer a alteração da “dataFinalização” digitando no campo. Mas o datepicker não surge.

Coloco abaixo os códigos do JSP, da tag, e do console do firefox.

Caso precisem, posto demais código (lógica, apache-log etc) apesar de não disparar erros e a lógica se apresentar normal.

Na minha opinião, o problema deve estar:

[list]Na tag (ou na chamada dela pelo JSP), algo relacionado ao modo de escrita dos id="${id}", name="${id}".[/list]
[list]Ou ainda, no $("${id}").datepicker, algo relacionado ao modo de escrita/chamada do campo como “dataFinalizacao” ou “tarefa.dataFinalizacao”.
[/list]
Como pesquisei, mas não consegui encontrar informação que resolvesse, posto aqui no fórum.

Agradeço quem se propor na ajuda.

Segue o código:

campoData.tag

[code]<%@ attribute name=“id” required=“true” %>

[/code]

Mostra.jsp

[code]<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@ taglib tagdir="/WEB-INF/tags" prefix=“caelum” %>

Mostra
	<h3>Altera tarefa - ${tarefa.id}</h3>
	
	<form action="alteraTarefa" method="post">
	
		<input type="hidden" name="id" value="${tarefa.id}" />
		
		Descrição:<br />
		
		<textarea name="descricao" rows="5" cols="100">${tarefa.descricao}</textarea>
		<br />
		
		Finalizado? <input type="checkbox" name="finalizado" value="true" ${tarefa.finalizado?'checked':''} /> <br />
		
		 
		Data de finalização com tag: <caelum:campoData id="dataFinalizacao" />
		<br />
		
		
		<!-- 
		finalização: <input type="text" name="dataFinalizacao"	value="<fmt:formatDate value="${tarefa.dataFinalizacao.time}" pattern="dd/MM/yyyy" />" />
		-->
		<br />
		
		<input type="submit" value="Alterar">
		
	</form>

</body>
[/code]

Console do firefox:

[20:55:50.652] GET http://localhost:8080/Caelum.Fj21-3-Tarefas/mostraTarefa?id=5 [HTTP/1.1 200 OK 134ms] [20:55:50.800] Propriedade desconhecida ?zoom?. Declaração ignorada. @ http://localhost:8080/Caelum.Fj21-3-Tarefas/resources/css/smoothness/jquery-ui-1.8.21.custom.css:18 [20:55:50.800] Erro no processamento do valor de ?filter?. Declaração ignorada. @ http://localhost:8080/Caelum.Fj21-3-Tarefas/resources/css/smoothness/jquery-ui-1.8.21.custom.css:19 [20:55:50.802] Propriedade desconhecida ?-moz-border-radius-topleft?. Declaração ignorada. @ http://localhost:8080/Caelum.Fj21-3-Tarefas/resources/css/smoothness/jquery-ui-1.8.21.custom.css:280 [20:55:50.802] Propriedade desconhecida ?-moz-border-radius-topright?. Declaração ignorada. @ http://localhost:8080/Caelum.Fj21-3-Tarefas/resources/css/smoothness/jquery-ui-1.8.21.custom.css:281 [20:55:50.802] Propriedade desconhecida ?-moz-border-radius-bottomleft?. Declaração ignorada. @ http://localhost:8080/Caelum.Fj21-3-Tarefas/resources/css/smoothness/jquery-ui-1.8.21.custom.css:282 [20:55:50.802] Propriedade desconhecida ?-moz-border-radius-bottomright?. Declaração ignorada. @ http://localhost:8080/Caelum.Fj21-3-Tarefas/resources/css/smoothness/jquery-ui-1.8.21.custom.css:283 [20:55:50.802] Propriedade desconhecida ?-moz-border-radius?. Declaração ignorada. @ http://localhost:8080/Caelum.Fj21-3-Tarefas/resources/css/smoothness/jquery-ui-1.8.21.custom.css:287

você já está utilizando jquery, apenas atrele o elemento ao ID do componente, e não da forma que você fez lançando um jstl como ID, ou, mesmo que isso seja necessário, aponte antes se é atrelado a uma classe ( adicionando .${id} ) ou se é um ID (adicionando #${id} ), isso que relaciona o elemento ao componente da tua página.

Esse é o exemplo do jqueryui, bem simples de entender, e o código fonte dele também.

[code]<!DOCTYPE html>
<html lang=“en”>
<head>
<meta charset=“utf-8”>
<title>jQuery UI Datepicker - Default functionality</title>
<link rel=“stylesheet” href="…/…/themes/base/jquery.ui.all.css">
<script src="…/…/jquery-1.7.2.js"></script>
<script src="…/…/ui/jquery.ui.core.js"></script>
<script src="…/…/ui/jquery.ui.widget.js"></script>
<script src="…/…/ui/jquery.ui.datepicker.js"></script>
<link rel=“stylesheet” href="…/demos.css">
<script>
$(function() {
$( “#datepicker” ).datepicker();
});
</script>
</head>
<body>

<div class=“demo”>

Date: <input type="text" id="datepicker">

</div><!-- End demo -->

</body>
</html>[/code]

[quote=andre.froes]você já está utilizando jquery, apenas atrele o elemento ao ID do componente, e não da forma que você fez lançando um jstl como ID, ou, mesmo que isso seja necessário, aponte antes se é atrelado a uma classe ( adicionando .${id} ) ou se é um ID (adicionando #${id} ), isso que relaciona o elemento ao componente da tua página.
[/quote]

Andre, obrigado pelo retorno.

Consegui corrigir o erro: faltou o jogo da velha # no meu campoData.tag:

[code]$("${id}").datepicker({

//foi corrigida para:

$("#${id}").datepicker({[/code]

Já tinha lido a página do datepicker, e até poderia ter visto que nela existe o jogo-da-velha.

Mas o que me ajudou foi a explicação entre a diferença entre estes: $ # (cifrão e jogo-da-velha) lida aqui: http://docs.oracle.com/javaee/6/tutorial/doc/bnahr.html

Caso alguem se interesse em fazer busca pelo $ e # na Expression Language (EL), procure pelos termos: “Immediate and Deferred Evaluation Syntax” . O $ refere-se ao immediate, e o # refere-se ao deferred.

Andre, novamente, obrigado pela ajuda.