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 :

passer des donnees d'une Actionform à une autre


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut passer des donnees d'une Actionform à une autre
    Bonjour,

    J'ai une premier page de connexion avec login et mot de passe, qui a son loginform et loginaction. celle ci me renvoi a une deuxieme page où je souhaite changer de mot de passe pour cela le verifie le login avec celui précédant et le mot de passe de la meme maniere. cette nouvelle jsp s'appel newlogin.jsp avec newloginform et newloginaction.

    J'ai utilisé :
    String oldpasword = bean.getPasword();
    HttpSession s = request.getSession();
    s.setAttribute("oldpasword", oldpasword);

    Mais cela m'empeche d'avoir plusieur session. Je croi que je devrais utiliser request ou reponse
    de :
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {

    (Pour des raisons de securiter je ne souhaite pas faire passer les données dans l'url)

    Mais je ne voi pas comment.

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Normalement, lorsque que l'utilisateur a passé la première mire de signature, il est authentifié (même s'il est encore connu en tant qu'utilisateur temporaire).Il n'y a pas de raison pour chercher par la suite à recréer une nouvelle session.

    Le fait de changer de mot de passe est une transaction comme une autre de ton appli.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    ?
    Ce que tu veux dire c'est que je devrais n'avoir qu'une seul action form?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Non, qu'une seule session.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Je ne comprend pas tres bien. J'ai bien tenté de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            LoginForm bean = (LoginForm)form;
            String p = bean.getPasword();
     
            NewLoginForm newBean = (NewLoginForm)form;
            String newpasword = newBean.getNewpasword();
            String pasword = newBean.getPasword()
     
            if (!p.equals(pasword)){
                return mapping.findForward(FAILURE);
            }
     
            bean.setPasword(pasword);
            return mapping.findForward(SUCCESS);
    Mais ca ne marche pas. Je ne vois pas trop la demarche.

    Si non voici code

    Login.jsp
    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
    37
    38
    39
     
    <%-- 
        Document   : login
        Created on : 3 juin 2009, 14:03:14
        Author     : A329820
    --%>
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
    <%@taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Connexion</title>
        </head>
        <body>
            <html:form action="/login">
            <table border="1">
                <tbody>
                    <tr>
                        <td>Entrez votre nom</td>
                        <td><html:text property="name"/></td>
                    </tr>
                    <tr>
                        <td>Entrez votre mot de passe</td>
                        <td><html:text property="pasword"/></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><html:submit value="OK"/></td>
                    </tr>
                </tbody>
            </table>
          </html:form>
        </body>
    </html>
    newlogin.jsp
    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
    37
    38
    39
    40
    41
    42
    43
     
    <%--
        Document   : NewLogin
        Created on : 3 juin 2009, 14:03:14
        Author     : A329820
    --%>
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
    <%@taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Connexion</title>
        </head>
        <body>
            <html:form action="/newlogin">
                <table border="1">
                    <tbody>
                        <tr>
                            <td>Entrez votre nom</td>
                            <td><html:text property="name"/></td>
                        </tr>
                        <tr>
                            <td>Entrez votre ancien mot de passe</td>
                            <td><html:text property="pasword"/></td>
                        </tr>
                        <tr>
                            <td>Entrez votre nouveau mot de passe</td>
                            <td><html:text property="newpasword"/></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td><html:submit value="OK"/></td>
                        </tr>
                    </tbody>
                </table>
            </html:form>
        </body>
    </html>
    loginform.java
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package com.myapp.struts;
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
     
    /**
     *
     * @author A329820
     */
    public class LoginForm extends org.apache.struts.action.ActionForm {
     
        private String name;
     
        private String pasword;
     
        public String getPasword() {
            return pasword;
        }
     
        public void setPasword(String pasword) {
            this.pasword = pasword;
        }
     
        /**
         * @return
         */
        public String getName() {
            return name;
        }
     
        /**
         * @param string
         */
        public void setName(String string) {
            name = string;
        }
     
        /**
         * @return
         */
        public LoginForm() {
            super();
            // TODO Auto-generated constructor stub
        }
     
        /**
         * This is the action called from the Struts framework.
         * @param mapping The ActionMapping used to select this instance.
         * @param request The HTTP Request we are processing.
         * @return
         */
        public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
            ActionErrors errors = new ActionErrors();
            if (getName() == null || getName().length() < 1) {
                errors.add("name", new ActionMessage("error.name.required"));
                // TODO: add 'error.name.required' key to your resources
            }
            return errors;
        }
    }
    loginaction.java
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package com.myapp.struts;
     
    import java.security.Principal;
    import java.util.Iterator;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import javax.servlet.http.HttpSession;
    import org.apache.catalina.Manager;
    import org.apache.catalina.Session;
    import org.apache.catalina.SessionListener;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForward;
     
    /**
     *
     * @author A329820
     */
    public class LoginAction extends org.apache.struts.action.Action {
     
        /* forward name="success" path="" */
        private final static String SUCCESS = "success";
     
        /**
         * This is the action called from the Struts framework.
         * @param mapping The ActionMapping used to select this instance.
         * @param form The optional ActionForm bean for this request.
         * @param request The HTTP Request we are processing.
         * @param response The HTTP Response we are processing.
         * @throws java.lang.Exception
         * @return
         */
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
     
                /*LoginForm bean = (LoginForm)form;
                String oldpasword = bean.getPasword();
                HttpSession s = request.getSession();
                s.setAttribute("oldpasword", oldpasword);*/
     
            return mapping.findForward(SUCCESS);
        }
    }
    newloginform.java
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package com.myapp.struts;
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
     
    /**
     *
     * @author A329820
     */
    public class NewLoginForm extends org.apache.struts.action.ActionForm {
     
        private String name;
     
        private String pasword;
     
        private String newpasword;
     
        public String getNewpasword() {
            return newpasword;
        }
     
        public void setNewpasword(String newpasword) {
            this.newpasword = newpasword;
        }
     
        public String getPasword() {
            return pasword;
        }
     
        public void setPasword(String pasword) {
            this.pasword = pasword;
        }
     
        /**
         * @return
         */
        public String getName() {
            return name;
        }
     
        /**
         * @param string
         */
        public void setName(String string) {
            name = string;
        }
        /**
         *
         */
        public NewLoginForm() {
            super();
            // TODO Auto-generated constructor stub
        }
     
        /**
         * This is the action called from the Struts framework.
         * @param mapping The ActionMapping used to select this instance.
         * @param request The HTTP Request we are processing.
         * @return
         */
        public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
            ActionErrors errors = new ActionErrors();
            if (getName() == null || getName().length() < 1) {
                errors.add("name", new ActionMessage("error.name.required"));
                // TODO: add 'error.name.required' key to your resources
            }
            return errors;
        }
    }
    newloginaction.java
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package com.myapp.struts;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import javax.servlet.http.HttpSession;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForward;
     
    /**
     *
     * @author A329820
     */
    public class NewLoginAction extends org.apache.struts.action.Action {
     
        /* forward name="success" path="" */
        private final static String SUCCESS = "success";
        private final static String FAILURE = "failure";
     
        /**
         * This is the action called from the Struts framework.
         * @param mapping The ActionMapping used to select this instance.
         * @param form The optional ActionForm bean for this request.
         * @param request The HTTP Request we are processing.
         * @param response The HTTP Response we are processing.
         * @throws java.lang.Exception
         * @return
         */
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
     
            LoginForm bean = (LoginForm)form;
            NewLoginForm newBean = (NewLoginForm)form;
            String newpasword = newBean.getNewpasword();
            String pasword = newBean.getPasword();
     
            //HttpSession s = request.getSession();
            //String p = (String)s.getAttribute("oldpasword");
     
           String p = bean.getPasword();
     
            System.out.print("p:"+p);
            System.out.print("pasword:"+pasword);
     
            if (!p.equals(pasword)){
                return mapping.findForward(FAILURE);
            }
     
            //s.setAttribute("oldpasword",newpasword);
            bean.setPasword(pasword);
            return mapping.findForward(SUCCESS);
        }
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Je n'ai peut être pas non plus compris ton problème. Je me suis basé sur ta remarque :

    Mais cela m'empeche d'avoir plusieur session.
    Pour moi, après le premier écran de login, tu as une session active qui contient un profil utilisateur et tu n'as pas à te poser de question sur la récupération des infos saisies dans la mire de login.
    Le contrôle de l'ancien mot de passe se fait par le biais de ton profil utilisateur en ligne.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Pardon,
    Mais comment j'accede a ce profil utilisateur?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Citation Envoyé par totonin Voir le message
    Pardon,
    Mais comment j'accede a ce profil utilisateur?
    Ca peut être un simple bean que tu auras enregistré en attribut de session à l'issue de la phase d'authentification.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Donc dans mon loginaction, je recupere le mot de passe et le login et apres je fait

    LoginForm bean = (LoginForm)form;
    String oldpasword = bean.getPasword();

    request.setAttribute(oldpasword, bean);

    et avec cela je pourrai recuperer le oldpasword dans le newloginaction?

    Pourrais-tu developper un peu plus en m'etant quelque lignes de code stp

    merci de ta comprehension je decouvre struts. et j'ai oublier mon livre chez moi

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Plus simplement :

    Imaginon que nous avons un site de gestion de paiement. le client se connecte par une connexion.jsp qui sa propre action. il arrive a un menu qui lui permet d'avoir acces a des applications.

    Il va sur l'application affichage historique transaction, qui a sa propre action independante de connexion.

    Pour cela il faut son login (unique biensur) pour rechercher tout ses tranaction.

    Nous n'allons pas lui demander de nous redonner son login pusque il s'est connecté deux pages avant. mais comment recupere t on le login? je ne souhaite pas le mettre de l'url.

    En esperant avoir etait un peu plus clair

    merci

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    le client se connecte par une connexion.jsp
    Par principe, dans Struts, on accède jamais directement à une vue (jsp). Tu accèdes à connexion.jsp en passant par un mapping connexion.do qui correspond à une action implémentée disons par ConnexionAction.java.


    Nous n'allons pas lui demander de nous redonner son login pusque il s'est connecté deux pages avant. mais comment recupere t on le login? je ne souhaite pas le mettre de l'url.
    Dans une action d'authentification, tu récupères userName et passWord, tu les stockes dans un bean et enfin tu enregistre ce bean en session.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession(true).setAttribute("userProfile",monBean);
    Tu peux ensuite accéder à ce bean depuis toutes les actions de navigation.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    J'avai fait cela dans mon loginaction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    LoginForm bean = (LoginForm)form;
                String oldpasword = bean.getPasword();
                HttpSession s = request.getSession();
                s.setAttribute("oldpasword", oldpasword);
    Et pour recuperer l'information dans mon NewLoginAction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            HttpSession s = request.getSession();
            String p = (String)s.getAttribute("oldpasword");
    Mais cela m'empeché d'avoir plusieur session distinct en meme temps. J'ai esseyé de mettre dans un bean mais ca na pas marché il me fait une erreur sur le LoginForm bean = (LoginForm)form; dans le NewLoginAction

    Voici le code dans le loginaction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LoginForm bean = (LoginForm)form
    HttpSession s = request.getSession();
                s.setAttribute("userProfile", bean);
    et dans le newloginaction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LoginForm bean = (LoginForm)form
    bean = (NewLoginForm) request.getSession(true).getAttribute("userProfile");

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Mais cela m'empeché d'avoir plusieur session distinct en meme temps.
    Je ne comprend pas ce que veut dire "avoir plusieures sessions dictinctes en même temps".

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Si je j'ouvre un page et que je change de mot de passe pour "a" et que dans une deuxieme page je change pour "b". alors le mot de passe de la premier page ne sera plus "a" mais "b".
    Je ne peut pas ouvrir plusieur session en meme temps.

    Image 1 :

    J'ai trois fenetre la premier je charge comme mot de passe "ac" dexieme fentre "b" troisieme fenetre "c"

    image 2 :

    je passe sur la jsp qui me permet de changer le mot de passe précedement saisie.

    image 3: resultat. lors de la saisie de l'image 1 le dernier mot de passe a ecraser les autre car ils sont tous finalement dans la meme session.

    Comment faire pour que cela n'arrive pas?

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Je ne comprend pas pourquoi tu cherches à ouvrir plusieurs sessions pour réaliser une opération qui consiste à modifier le profil de l'utilisateur. Le cas d'utilisation de ton appli n'est pas clair (à mon sens).

    Le profil utilisateur est-il persistant (enregistré en base de données) ? je n'ai pas l'impression.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Il est vrai que dans le cas present je n ai pas de base de donnée. mais cela ne change pas grand chose finalement a ma requete.

    Comment fait on pour recuperer des données d'une action forme sur n'importe quelle autre. si je veu avoir l'historique de paiement d'un client il me faut son login. comment je le recupere de connexionAction ou ConnexionForm sur n'importe quelle autre class action?

    Si non l'histoir des differentes sessions, c'est que je suohaiterai que lorsque une personne se connecte a mon site, de son ordinateur, qu'elle laisse sa session ouverte, et qu'une deuxieme personne utilise son ordi pour avoir acces a mon site, les donnée de la deuxieme personne ne doivent pas alterer celle de la premier. mais la ce n'est pas le cas

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Comment fait on pour avoir acces a des donner d"une class action dans d'autres?

    S'il vous plait je suis a deux doigt de me les coupé pour passer a grails...

  18. #18
    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 totonin Voir le message
    J'ai esseyé de mettre dans un bean mais ca na pas marché il me fait une erreur sur le LoginForm bean = (LoginForm)form; dans le NewLoginAction

    Voici le code dans le loginaction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LoginForm bean = (LoginForm)form
    HttpSession s = request.getSession();
                s.setAttribute("userProfile", bean);
    et dans le newloginaction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LoginForm bean = (LoginForm)form
    bean = (NewLoginForm) request.getSession(true).getAttribute("userProfile");
    Dans ce cas-là, dans NewLoginAction, ce serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LoginForm loginForm = (LoginForm) request.getSession(false).getAttribute("userProfile");
    NewLoginForm newLoginForm = (NewLoginForm) form ;
    mais en fait, si tu mets le scope du form-bean loginForm à session dans le mapping de l'Action LoginAction, tu n'as pas besoin de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HttpSession s = request.getSession();
    s.setAttribute("userProfile", bean);
    car le form-bean loginForm sera automatiquement mis dans la session et tu pourras le récupérer dans NewLoginAction comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LoginForm loginForm = (LoginForm) request.getSession(false).getAttribute("loginForm");
    dans mon exemple, je suppose que loginForm est le nom que tu as donné au form-bean LoginForm dans le struts-config.xml.

    Une autre solution serait d'instancier NewLoginForm dans LoginAction, d'initialiser les propriétés de NewLoginForm avec les setters, et de le stocker dans le scope session sous le nom défini dans le struts-config.xml.

    Code dans LoginAction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LoginForm loginForm = (LoginForm)form ;
    NewLoginForm newLoginForm = new NewLoginForm() ;
    newLoginForm.setName(loginForm.getName()) ;
    newLoginForm.setPasword(loginForm.getPasword) ;
    session.setAttribute("newLoginForm",newLoginForm) ;
    Il faut dans ce cas mettre le scope du form-bean newLoginForm à session dans le mapping de l'Action NewLoginAction dans le struts-config.xml.

    Et dans NewLoginAction, tu récupères newLoginForm comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewLoginForm newLoginForm = (NewLoginForm) form ;
    Mais en fait, pourquoi n'utilises-tu pas tout simplement le même ActionForm pour les deux Actions ?

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Pardon de repondre si tard mais je n'ai plus internet chez moi (Club vers son nouveau proprietaire c'une une semaine sans telephone internet et tele!!! merci la lettre qui m'a prevenu de cela que je n ai jamais recu!!!)

    Merci je vai esseyer cela tout de suite.

    pour repondre a ta dernier question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mais en fait, pourquoi n'utilises-tu pas tout simplement le même ActionForm pour les deux Actions ?sdfsd
    Je ceci n'est qu'un entrainement. Confirme moi mais il est preferable de ne pas tout avoir dans la meme Action mais de les regrouper par "theme". Bon ok mon exemple est mal choisi... Mais dans le cas d'un systeme de gestion de paiement, Tu vas avoir une action pour la gestion des connexion, une action pour la gestion des donnée personnel, une action pour l'historique des paiement... Donc ma question etait de savoir comment passer des donnée d'une action a une autre. Et de d'avoir plusieur session ouverte independante sur le meme poste. Comme une boite mail. Ce n'est pas tres performant si lorsque tu laisses ta boite mail ouverte, et qu'une personne va sur ton poste ouvre une nouvelle page IE et regarde ses mail a lui, que ta session soit ecrasé.

    Je teste tout et je reviens

    Merci encor

  20. #20
    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 jamais suggéré de mettre tout dans la même Action.
    J'ai juste suggéré d'utiliser une seule ActionForm car tu peux très bien lier une même ActionForm à plusieurs Actions, dans la mesure où tu gères les mêmes propriétés, comme dans ton cas de LoginAction et NewLoginAction.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/12/2007, 17h55
  2. Réponses: 4
    Dernier message: 20/06/2007, 17h34
  3. passer des paramétres d'un formulaire à une requête
    Par lasmarmann dans le forum Access
    Réponses: 1
    Dernier message: 24/10/2006, 09h37
  4. [C#] Passer des contrôles comme parametre dans une fonction
    Par sara21 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/09/2006, 13h05
  5. Réponses: 1
    Dernier message: 23/05/2006, 14h36

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