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][Validation] - Validation dans un execute


Sujet :

Struts 1 Java

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Points
    948
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Par défaut [STRUTS][Validation] - Validation dans un execute
    Bonjour, j ai un petit soucis avec la validation dans Struts...

    Supposons un formulaire d'identification basique(login, password)...

    Pour le validation, j utilise la methode validate de l'ActionForm dans laquelle j oblige le login et le mot de passe a etre non vides...

    Ensuite dans l Action je recupere le login et le mot de passe pour verifier l existence de l utilisateur dans la base de donnée...

    A ce moment la, je voudrais envoye une erreur dans le cas d un echec d authentification, comment puis je faire

    voici mon code


    le struts-config.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            <action
                path="/Inside"
                type="ch.clio.ppc.action.AuthentificationAction"
                name="AuthentificationForm"
    			input="tile.login">
                <forward name="ok" path="tile.index"/>
                <forward name="nok" path="tile.login"/>
            </action>
    l action:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception 
    	   {
    	   		AuthentificationForm af = (AuthentificationForm) form;
    	                  ActionMessages messages = new ActionMessages();
     
                try {
        	   		//Token creation request
        	   		TokenAVO tvo = AuthorizationManager.getToken(af.getLogin(), af.getPass());
                               request.getSession().setAttribute("tvo", tvo);
     
                } catch (AuthorizationException e) {
                    //User is not registered
                    ActionMessage newMessage = new ActionMessage ("error.authentification.login");
                    messages.add(ActionMessages.GLOBAL_MESSAGE, newMessage);
                    saveMessages(request, messages);
                    return mapping.findForward("nok");
                }
     
    	   		//Cleaning form
    	   		if (mapping.getAttribute() != null)
    		    {
    		      if (mapping.getScope().equals("request"))
    		      {
    		        request.removeAttribute(mapping.getAttribute());
    		      }
    		      else
    		      {
    		        HttpSession session = request.getSession();
    		        session.removeAttribute(mapping.getAttribute());
    		      }
    		    }
     
    	   		return mapping.findForward("ok");
    	   }
    Cela me ramene a la page de login quand le user n existe pas mais je n ai pas de messages d erreurs

    Merci d avance

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    3
    Points
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 3
    Points : 4
    Par défaut
    pourquoi ne pas faire la validation de l'utilisateur (bon couple user/pwd) dans la méthode validate de ta classe Form ...

    si c'est pas OK tu rajoute une erreur, et si c'est Ok tu passe à la classe Action associée qui va enregistrer en session les données qui vont bien pour ton utilisateur (en fonction de ton appli) ....

    enfin moi c'est ce que je ferais

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Points
    948
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Par défaut
    Je vais etudier ça, en tout cas merci de ta reponse...

    Si kkun a une autre idee je suis preneur

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Points
    948
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Par défaut
    En fait ce qui me derange c d avoir le code metier dans l ActionForm et non pas dans l action...


  5. #5
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    66
    Points
    53
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 66
    Points : 53
    Par défaut
    Salut ! c'est kler que du code métier dans le validate c un peu moyen.

    sinon pour ton problème d'erreur as tu bien mis le tag : <html:errors /> dans ta jsp ???

    c grace a ce tag que tu affiche les erreurs de ta request

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    105
    Points
    107
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 105
    Points : 107
    Par défaut
    t'es pas obligé de mettre ton code métier dans l'actionForm mais le laisser dans la classe Action...
    l'actionForm teste juste si tes champs sont remplis (pas a vide...etc)

    et dans ta classe action tu gères l'erreur en l'ajouter dans errors
    et ton forward...

    et oui pour afficher l'erreur c'est </html:errors>
    et ca te l'affiche sur ta page...
    en popup je crois que c'est un peu plus compliqué...

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    66
    Points
    53
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 66
    Points : 53
    Par défaut
    Sinon pour la validation de formulaires tu a aussi
    struts-validator, c tres bien !

    je connais pas mal donc si tu veux t'y mettre, je peux t'aider

    en plus c tres facile a mettre en place

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Points
    948
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Par défaut
    je connais validator neanmoins nous n avons pas le temps de l utiliser...
    Personne n a jamais eu a creer des erreurs a partir d une actionServlet??

    Merci pour votre aide

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Points
    948
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948

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

Discussions similaires

  1. [Struts] ordre d'appel de execute et validate
    Par Paganoni dans le forum Struts 1
    Réponses: 3
    Dernier message: 03/10/2005, 16h32
  2. Réponses: 7
    Dernier message: 16/03/2005, 13h35
  3. Réponses: 3
    Dernier message: 15/03/2005, 13h22
  4. [ Struts ] pb Validator
    Par voodoo_mg dans le forum Struts 1
    Réponses: 7
    Dernier message: 01/07/2004, 09h11
  5. [ Struts ][ Validator ]validation côté serveur
    Par tiSioux dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/06/2004, 10h25

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