Bonjour,

j'aimerais afficher des dates dans un textfield dans le format français dd/MM/yyyy tout en affichant correctement les erreurs de conversion de date s'il y en a.

Or j'ai vraiment du mal à comprendre ce qu'il se passe dans struts.

Dans la JSP j'ai essayé de faire le plus simple naivement :

<s:textfield key="maDate"/>

Et j'ai déclaré un champ 'maDate' java.util.Date dans on action.

Mais quand j'affiche des données qui viennent de la base de donnée (non saisies par l'utilisateur), les données s'affichent comme ceci 29/01/09.

D'ailleurs j'aimerais que vous m'éclairiez sur ce point concernant les validations des dates.
La locale de mon appli étant "france" quand j'enregistre 29/01/2009 ca passe et quand je met 01/29/2009 j'ai bien une erreur de validation et dans le texte field j'ai bien la valeur saisie c'est à dire 01/29/2009. Mais j'avoue que je suis surpris puisque si STRUTS récupère le champ maDate contenu dans mon action, ce champ date devrait être vide, puisque la conversion n'a pas été possible. Par défaut, STRUTS est-il assez intelligent pour récupérer d'abord ce qu'il y a dans la requete HTTP avant d'aller chercher dans l'action ?

Après ce petit apparté, pour résoudre mon problème initial, j'ai bien tenté de suivre ce qu'il y a écrit là : http://struts.apache.org/2.x/docs/fo...d-numbers.html

Mais il y a toujours un problème : j'ai mis date.format dans mon ressoruces bundle puis :

<s:textfield key="maDate" value="%{getText('format.date',{maDate})}" />

mais dans ce cas, c'est nul car je n'ai plus la valeur remplie par l'utilisateur mais ce qui vient de mon action, c'est à dire null puisque la conversion a échoué.

Est-ce que je passe a coté de quelque chose ou faut-il utiliser des champ string pour représenter les dates pour les textes field (ca serait un peu nul quand même) ?