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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

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

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