IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

validation saisie de date en fonction de la locale


Sujet :

Struts 1 Java

  1. #21
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    en fait, je ne parviens pas à retrouver le validator-rules livré avec struts j'ai decompresser le .jar commons-validator mais il ne s'y trouve pas

  2. #22
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tout dépend quelle version de Struts tu utilises. Peux-tu le préciser ?

    Dans les versions 1.3, il est dans le jar struts-core et comme je l'ai expliqué précédemment, il n'est pas utile de le copier dans le projet.

    Dans les versions 1.2, tu peux le trouver dans le répertoire lib de Struts que tu as téléchargé.

  3. #23
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    c'est la version 1.1 que j'utilise

  4. #24
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    je vais reprendre le validator-urles.xml qui a été utilisé pour les autres projets de ma boite, ils sont sous la même version.

  5. #25
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Je n'ai pas de version 1.1 mais je suppose que le fichier validator-rules.xml se trouve dans le répertoire lib de Struts téléchargé.

  6. #26
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Citation Envoyé par Watier_53 Voir le message
    je vais reprendre le validator-urles.xml qui a été utilisé pour les autres projets de ma boite, ils sont sous la même version.
    Oui mais il en faut un qui n'a pas été modifié.

    Sinon, si la 1.1 est encore disponible, tu as peut-être intérêt à la télécharger.

  7. #27
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    ok j'ai vérifié au près de personne ayant manipulé ce fichier et c'est le bon, je te remercie !! et maintenant ça fonctionne bien !!! j'ai plus qu'a généralisé mon traitement

    merci de ton aide

  8. #28
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    La validation de la date se fait bien en fonction de la locale ?
    Si c'est bien le cas, c'est cool parce que j'avais peur que ça ne fonctionne pas en Struts 1.1.

  9. #29
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    avec le language="fr" ça fonctionne, pour les autres langages j'ai pas encore tester il faut que je bascule dans un autre langage, je te redirai si cela fonctionne

  10. #30
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    Après de nouveaux essais ce matin , je confirme qu'avec struts 1.1, on peut effectuer une validation différente par langue : en effet il suffit d'avoir un fichier validation.xml semblable à celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <formset language="fr">
       <form name="nomDuFormBean">
        <field property="maDate" depends="required,date">
            <arg position="0" key="key.maDate"/>
            <var>
             <var-name>datePatternStrict</var-name>
             <var-value>dd/MM/yyyy</var-value>
            </var>
        </field>
       </form>
    </formset>
    <formset language="en">
       <form name="nomDuFormBean">
        <field property="maDate" depends="required,date">
            <arg position="0" key="key.maDate"/>
            <var>
             <var-name>datePatternStrict</var-name>
             <var-value>MM-dd-yyyy</var-value>
            </var>
        </field>
       </form>
    </formset>
    Ensuite il faut définir chaque message afficher par le javascript dans les fichiers properties, dans mon cas la clé est errors.date.

    Ce comportement est donc adapté à mon programme et j'en suis ravi.

    Je me pose d'autres petites questions :

    - A quoi sert la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <arg position="0" key="key.maDate"/>
    - J'aimerai pouvoir mettre plusieurs possibilié pour ma date du genre : dd/MM/aaaa , ddMMaaaa. Pour cela j'ai mis plusieurs balise <var> et cela fonctionne mais n'est ce pas dangereux à utiliser?

    - J'aimerai également lors de mon entrée sur la page effectuer un préremplisage du textinput contenant la date : par exemple dd/MM/aaaa pour guider l'utilisateur, comment puis-je m'y prendre?

    - Dernière question, vu que j'autorise plusieurs forme de date à la saisie je dois être capable de les transformer au format français de ma base de données. Comment puis-je m'y prendre pour convertir mon string obtenu à la saisie et le transcrire en date au format de ma base de données.
    Le mieux serait que ce soit le plus automatique possible.

    Merci par avance pour l'aide.

  11. #31
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    La balise arg que je t'ai donné fonctionne avec Struts 1.3.

    Avec Struts 1.1, utilise plutôt :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <arg0 key="key.date"/>
    En fait, dans l'attribut key, tu dois spécifier la clé correspondant au libellé du champ date.

    Par exemple, dans le cas d'une date de naissance, tu pourrais coder ceci dans le fichier properties :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dateNaissance=Date de naissance
    errors.date={0} invalide.
    et ceci dans la balise arg0 :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <arg0 key="dateNaissance"/>
    Et donc, lors de la validation, si le format de date saisi n'est pas le bon, le message suivant apparaîtra :
    Date de naissance invalide
    Sinon, je n'ai jamais testé la définition de plusieurs formats pour une même date mais, si en mettant les formats dd/MM/aaaa et ddMMaaaa, il vérifie bien que la date est bien saisi sous l'un ou l'autre format, c'est que c'est bon.

    Sinon, plutôt que de préremplir ton champ, tu pourrais peut-être plutôt afficher un message à côté du champ texte via le tag bean:message.

    Dans chaque fichier d'internationalisation, tu définis une clé et le libellé associé pour indiquer le bon format de saisi pour la date style :
    dateNaissance.formats=(dd/MM/aaaa ou ddMMaaaa)
    et dans la jsp, à côté du champ texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:message key="dateNaissance.formats"/>
    Et enfin, pour transformer la date String en date Java, il faut utiliser la classe SimpleDateFormat comme indiqué dans la FAQ.
    Et pour récupérer le bon format en fonction de la locale, on peut également utiliser les messages définis dans les fichiers properties et les récupérer dans l'Action.

    Par exemple, dans le fichier properties français :
    dateNaissance.format1=dd/MM/aaaa
    dateNaissance.forma21=ddMMaaaa
    dans l'Action, on récupère les formats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MessageResources messageResources = this.getResources(request);
    String formatDateNaissance1= messageResources.getMessage(request.getLocale(),"dateNaissance.format1");
    String formatDateNaissance2= messageResources.getMessage(request.getLocale(),"dateNaissance.format2");
    et ensuite, on transforme la date en fonction du format récupéré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SimpleDateFormat sdf = new SimpleDateFormat(formatDateNaissance1);
    Date javaDateNaissance=sdf.parse(dateNaissance);
    Tu dois pouvoir gérer le cas où le parse ne fonctionne pas avec le premier format et dans ce cas, faire le parse avec le deuxième format.
    A tester.

  12. #32
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    ok mrci pour ces renseignements je vais aprofondir.

    En ce qui concerne les deux patterns pour la date ça ne fonctionne pas, il prend en compte seulement le deuxième. Cela est du au patternStrict qui oblige un seul type de saisie. Par contre si j'enlève le strict il m'accepte tout, c'est pas normal?

    Sinon sais tu si on peut empecher la saisie de caractère dans le champ autrement qu'en javascript?

  13. #33
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    En fait je crois que datePattern n'existe pas dans struts 1.1, il y a seulement datePatternStrict , car quand j'essaye avec datePatternStrict, j'ai une erreur javascript sur la fonction javascript de validation-rules.xml

  14. #34
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Si la règle fournie par le Validator pour les champs date ne correspond pas à ton attente, tu peux très bien définir ta propre règle de validation mais là, c'est à toi d'écrire le code qui va bien.
    Ensuite, il faut créer ton propre fichier validator-rules.xml pour déclarer cette nouvelle règle et référencer cette nouvelle règle pour ton champ date dans le fichier validation.xml.

    Pour info, tu peux choisir de faire une validation côté client en écrivant la fonction Javascript correspondante et/ou une validation côté serveur en écrivant la classe Java correspondante.
    Pour écrire ta propre règle, tu peux très bien t'inspirer du code Java ou Javascript fourni pour la règle de validation des dates par le Validator.

  15. #35
    Membre éclairé Avatar de Watier_53
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 469
    Par défaut
    oui je vois ce que tu veux dire, mais je ne vais pas faire. Je cherche une méthode très générale et non spécifique

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [WD17] Masque date pour fonction saisie()
    Par jcpas dans le forum WinDev
    Réponses: 8
    Dernier message: 07/02/2012, 14h19
  2. Saisie de date et validation
    Par Cram_N7 dans le forum Struts 2
    Réponses: 10
    Dernier message: 17/08/2009, 10h12
  3. validation date en fonction de la locale
    Par Watier_53 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/10/2008, 10h20
  4. Saisie des dates
    Par J-P-B dans le forum XMLRAD
    Réponses: 5
    Dernier message: 04/07/2003, 11h08
  5. Réponses: 3
    Dernier message: 19/03/2003, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo