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 :

[Struts-Validator] Gestion d'erreurs


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 107
    Points : 62
    Points
    62
    Par défaut [Struts-Validator] Gestion d'erreurs
    Bonjour,

    J'utilise struts-validator pour faire des checks sur mes formulaires.

    Jusqu'a present ca fonctionne, mais maintenant, en ce qui concerne mon formulaire de login, j'aimerais signalez en plus à l'utilisateur, qu'il m'a donné un mauvais couple login/pwd.

    J'ai essaye de m'inspirer de struts-example, mais je n'y arrive pas.

    Pour ceux qui ont déjà reussit a le faire, pouvez vous me donner quelques pistes.

    Merci

    Sylvain

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    Le plugin validator permet d'inclure des contrôles js dans la page html. Or pour définir si un couple login password est valide ou non, il faut que tu fasses une requête dans ta base de donnée, c'est pourquoi, à ta place, j'utiliserai plutôt la méthode validate de ton ActionForm.

    ++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 107
    Points : 62
    Points
    62
    Par défaut
    c quoi cette méthode ??!!??

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Lorsque tu crée un formulaire tu le rattaches à un ActionForm. Cet ActionForm peut contenir une méthode validate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    		ActionErrors errors = new ActionErrors();
                    // Ici tu effectues tes contrôles et tu alimente l'ActionErrors
    		return errors;
    	}
    Dans ton descripteur il te suffit de rajouter, lors de la déclaration de ton action, les attributs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    validate ="true" et input="nom_de_la_page_à_afficher_en_cas_d'erreurs"
    Si ton ActionErrors ne contient pas d'erreurs alors il passe automatiquement à la méthode ton Action, sinon il réaffiche la page spécifié dans l'input avec les erreurs que tu as détectée.

    Ceci est une présentation un peu succinte, mais tu dois pouvoir trouver plus de doc sur le net.

    Bon courage,

    ++

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 107
    Points : 62
    Points
    62
    Par défaut
    moi, le controle du password, se fait dans la méthode perform(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) de mon Action.

    Si Validator accepte le formulaire suivant mes critères, alors le code de perform() va etre executé.

    La méthode validate() se trouve dans l'ActionForm.
    En fait, tu me demandes de faire le contrôle de validité dans cette méthode au lieu de la faire dans la méthode perform() ??

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Je ne vois pas ou se trouve la méthode perform !
    Tu parles peut être de la méthode execute de ton Action ?

    En tout cas, il peut être utilise de faire la vérification de ton formulaire dans le validate de ton ActionForm. Notamment lorsque tu ne peux pas la faire avec du javascript (nécéssité d'accéder à une BD par exemple).

    Si Validator accepte le formulaire suivant tes critères, alors le code de validate() va etre executé. Si validate() ne remonte pas d'erreur alors ton execute est appelé.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 107
    Points : 62
    Points
    62
    Par défaut
    tu fais quoi dans ton execute si tu fais tout dans ton Form ??

    juste la redirection ??

  8. #8
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Dans ton perform() qui je crois provient de la version (1.0 de Struts), tu dois pouvoir exécuter le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ActionErrors errors = new ActionErrors(); 
    errors.add("clederecuperationalaffichage",  new ActionError("cledanstonfichierproperties"));
    if (!errors.empty()) {
            saveErrors(request, errors); 
            request.setAttribute(NEXT_PAGE, nextPage);            
            return mapping.getInputForward();
          }
    Et ensuite dans ta JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:errors property="clederecuperationalaffichage"/>
    là où tu veux afficher l'erreur.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 107
    Points : 62
    Points
    62
    Par défaut
    oki, je v essayer ca.

    me suis servi du struts-blank de struts 1.1

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 107
    Points : 62
    Points
    62
    Par défaut
    ca marche c nickel !! ;-)

    quand a la JSP, pas besoin de rajouter quoi que ce soit, y avait deja du code pour afficher les erreurs !!

    cool

    MERCI

  11. #11
    wazup
    Invité(e)
    Par défaut
    Il y a une chose que je ne comprends pas dans ce que tu veux faire :

    un couple login/password est typiquement une chose à valider côté server
    et non côté client, puisque ceci relève d'une soumission à une persistance (BD ou annuaire) côté server.

    Il n'y a donc pas lieu, apparemment, de chercher à valider cote client.

    Ce qu'on peut valider de cette façon, ce serait par exemple un changement de mot de passe (ancien/nouveau/confirmation).

    Il faut donc bien utiliser une spécialisation de FormAction.Validate()

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 107
    Points : 62
    Points
    62
    Par défaut
    euh, c koi ta question ??

    ce que je valide cote client, c juste l'existante du login et du password dans les champs de mon form

  13. #13
    wazup
    Invité(e)
    Par défaut ok validation client
    Ok, alors ils'agit bien d'une validation client, mais où est alors la difficulté avec validator puisqu'il ne s'agit que de verifier l'existence des deux ?

  14. #14
    wazup
    Invité(e)
    Par défaut complement
    <form-validation>
    <formset>

    <form name="myform">
    <field property="login" depends="required">
    <arg0 key="label.label"/>
    </field>

    <field property="mypass" depends="required">
    <arg0 key="label.mypass"/>
    </field>
    <formset>
    ...

    et dans le application-resources.properties

    errors.required = {0} est un champ obligatoire

    ---
    et tu obtiens un popup côté client
    avec les deux messages (et d'autres s'il y a lieu, traités de la mme façon

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 107
    Points : 62
    Points
    62
    Par défaut
    cool.

    ca permet de gérer le fait que le login et le password soit ecris.

    ca j'arrive a le faire, ce que je voulais faire, c'est générer un message d'erreur en cas de mauvais login/password.

    maintenant, j'arrive a gérer ceci.
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion des erreurs (validation de formulaires)
    Par mattyeux dans le forum Ruby on Rails
    Réponses: 6
    Dernier message: 26/11/2007, 07h53
  2. [Struts Validator] probleme affichage des erreurs
    Par Morpheus2144 dans le forum Struts 1
    Réponses: 7
    Dernier message: 24/01/2006, 15h25
  3. [struts] gestion d'erreurs, petite question
    Par Invité dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/01/2006, 13h54
  4. [Struts]Valider et afficher erreur - message resource
    Par djodjo dans le forum Struts 1
    Réponses: 6
    Dernier message: 29/12/2005, 15h52
  5. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51

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