2010-07-29 2 views
0

Je me demande comment passer un objet Java Date de beans -> hibernate -> Spring MVC -> dojo et revenir à cet objet Date qui serait stocké dans la base de données en utilisant hibernate.Comment passer l'objet Java Date au dojo DateTextBox via Spring MVC et revenir à Java?

J'ai essayé, dans une classe de beans, de créer un getter et un setter qui retournent/récupèrent la chaîne en analysant la valeur au format compatible dojo (aaaa-MM-jj). Lorsque la date de la base de données est nulle alors il n'y a aucun problème et tout fonctionne comme prévu, mais lorsque la date n'est pas nulle, la page Web ne peut pas être générée en raison de l'erreur _841.getMonth() n'est pas une méthode. Je me suis rendu compte que cela est dû à la valeur du paramètre print: form: input ... à une chaîne au format aaaa-MM-jj et dojo ne le traite pas comme une date mais comme une chaîne.

Mon code ressemble:

<form:input path="tDate" /> 
<script type="text/javascript"> 
    Spring.addDecoration(new Spring.ElementDecoration({ 
     elementId : "tDate", 
     widgetType : "dijit.form.DateTextBox", 
     widgetAttrs : {promptMessage: "Enter a date", 
        required: "true"} 
})); 
</script> 

et au printemps convertit la forme: entrée ... à quelque chose comme:

<input id="tDate" name="tDate" value="2010-07-29" /> 

Je serais très reconnaissant si vous pouviez proposer une solution à ce problème. S'il est possible d'avoir getter et setter pour l'objet Java Date pour obtenir/retourner Date et pas String, comme je le fais maintenant, ce serait parfait.

Vive

Répondre

0

Ajout:

datePattern : "yyyy-MM-dd" 

à widgetAttrs résolu le problème. Même si le dojo DateTextBox utilise ce modèle par défaut, il doit être spécifié pour que form: input fonctionne correctement.

Cette solution n'est pas parfaite car dans la classe des beans j'utilise encore getter et setter pour utiliser String pour mon objet Date et analyser la valeur dans ces méthodes.