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

Servlets/JSP Java Discussion :

Gérer 2 formulaires, form, servlet, beans...


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 174
    Points : 51
    Points
    51
    Par défaut Gérer 2 formulaires, form, servlet, beans...
    Bonjour ,

    Voila je veut traiter 2 formulaire (client et commande) dans la meme page Jsp , j'ai mis les Forms , et beans , le bean commande avec un Object client , et les servlets , sauf que quand j’exécute la page JSP de la commande le formulaire de la commande affiche les erreurs et tout mais le formulaire du client n'affiche rien voila mes codes :

    Servlet creation du client :

    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
    public class CreationClient extends HttpServlet {
        private static final long   serialVersionUID = 1L;
     
        private static final String ATT_FORM         = "form";
        private static final String ATT_CLIENT       = "client";
     
        private static final String VUE_INVALID      = "/WEB-INF/client.jsp";
        private static final String VUE              = "/WEB-INF/afficherClient.jsp";
     
        private static final String session_client   = "sessionClient";
     
     
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException,
                IOException {
     
            this.getServletContext().getRequestDispatcher( VUE_INVALID ).forward( request, response );
     
        }
     
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException,
                IOException {
     
            Form_client form = new Form_client();
            Client clien = form.inscrireClient( request );
     
            HttpSession session = request.getSession();
     
            request.setAttribute( ATT_FORM, form );
            request.setAttribute( ATT_CLIENT, clien );
     
            if ( form.getErreur().isEmpty() ) {
                session.setAttribute( session_client, clien );
                request.getRequestDispatcher( VUE ).forward( request, response );
            } else {
                session.setAttribute( session_client, null );
                request.getRequestDispatcher( VUE_INVALID ).forward( request, response );
            }
        }
    }
    Servlet creation de la commande :

    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
    public class CreationCommande extends HttpServlet {
        private static final long   serialVersionUID = 1L;
     
        private static final String ATT_FORMCO       = "forma";
        private static final String ATT_COMMANDE     = "commande";
     
        private static final String VUE              = "/WEB-INF/commande.jsp";
        private static final String VUE_Valid        = "/WEB-INF/afficherCommande.jsp";
     
        private static final String session_commande = "sessionCommande";
     
        /**
         * @see HttpServlet#HttpServlet()
         */
        public CreationCommande() {
            super();
            // TODO Auto-generated constructor stub
        }
     
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException,
                IOException {
     
            request.getRequestDispatcher( VUE ).forward( request, response );
     
        }
     
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException,
                IOException {
     
            Form_commande forma = new Form_commande();
            Commande cmd = forma.inscrireCommande( request );
     
            HttpSession session = request.getSession();
     
            request.setAttribute( ATT_FORMCO, forma );
            request.setAttribute( ATT_COMMANDE, cmd );
     
            if ( forma.getErreur().isEmpty() ) {
     
                session.setAttribute( session_commande, cmd );
                request.getRequestDispatcher( VUE_Valid ).forward( request, response );
            } else {
     
                session.setAttribute( session_commande, null );
                request.getRequestDispatcher( VUE ).forward( request, response );
            }
        }
    }
    Form du client :

    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
    public class Form_client {
     
        public static final String CHAMP_NOM       = "nomClient";
        public static final String CHAMP_PRENOM    = "prenomClient";
        public static final String CHAMP_ADRESSE   = "adresseClient";
        public static final String CHAMP_TELEPHONE = "telephoneClient";
        public static final String CHAMP_EMAIL     = "emailClient";
     
        Map<String, String>        erreur          = new HashMap<String, String>();
     
        String                     resultas;
     
        public Map<String, String> getErreur() {
            return erreur;
        }
     
        public String getResultas() {
            return resultas;
        }
     
        public Client inscrireClient( HttpServletRequest request ) {
     
            String nom = getValeur( request, CHAMP_NOM );
            String telephone = getValeur( request, CHAMP_TELEPHONE );
            String prenom = getValeur( request, CHAMP_PRENOM );
            String adresse = getValeur( request, CHAMP_ADRESSE );
            String email = getValeur( request, CHAMP_EMAIL );
     
            Client clien = new Client();
     
            try {
                validationNom( nom );
            } catch ( Exception e ) {
                setErreurs( CHAMP_NOM, e.getMessage() );
            }
            clien.setNom( nom );
     
            try {
                validationPrenom( prenom );
            } catch ( Exception e ) {
                setErreurs( CHAMP_PRENOM, e.getMessage() );
            }
            clien.setPrenom( prenom );
     
            try {
                validationAdresse( adresse );
            } catch ( Exception e ) {
                setErreurs( CHAMP_ADRESSE, e.getMessage() );
            }
            clien.setAdresse_de_livraison( adresse );
     
            try {
                validationTelephone( telephone );
            } catch ( Exception e ) {
                setErreurs( CHAMP_TELEPHONE, e.getMessage() );
            }
            clien.setTelephone( telephone );
     
            try {
                validationEmail( email );
            } catch ( Exception e ) {
                setErreurs( CHAMP_EMAIL, e.getMessage() );
            }
            clien.setEmail( email );
     
            if ( erreur.isEmpty() ) {
                resultas = "Inscription Client avec succès";
     
            } else {
                resultas = "Inscription Client echoué";
            }
     
            return clien;
     
        }
    Form de la commande :

    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    public class Form_commande {
     
        private static final String ATT_MDPAIMENT     = "modePaiementCommande";
        private static final String ATT_STATPAIMENT   = "statutPaiementCommande";
        private static final String ATT_MDLIVRAISON   = "modeLivraisonCommande";
        private static final String ATT_STATLIVRAISON = "statutLivraisonCommande";
        private static final String ATT_MONTCOMMANDE  = "montantCommande";
     
        Map<String, String>         erreur            = new HashMap<String, String>();
     
        String                      resultas;
     
        public Map<String, String> getErreur() {
            return erreur;
        }
     
        public String getResultas() {
            return resultas;
        }
     
        public Commande inscrireCommande( HttpServletRequest request ) {
     
            /*
             * L'objet métier pour valider la création d'un client existe déjà, il
             * est donc déconseillé de dupliquer ici son contenu ! À la place, il
             * suffit de passer la requête courante à l'objet métier existant et de
             * récupérer l'objet Client créé.
             */
            Form_client Form = new Form_client();
            Client client = Form.inscrireClient( request );
     
            /*
             * Et très important, il ne faut pas oublier de récupérer le contenu de
             * la map d'erreurs créée par l'objet métier CreationClientForm dans la
             * map d'erreurs courante, actuellement vide.
             */
            erreur = Form.getErreur();
     
            String mdpayement = getValeur( request, ATT_MDPAIMENT );
            String statpayement = getValeur( request, ATT_STATPAIMENT );
            String modelivraison = getValeur( request, ATT_MDLIVRAISON );
            String statlivraison = getValeur( request, ATT_STATLIVRAISON );
            String montant = getValeur( request, ATT_MONTCOMMANDE );
     
            DateTime dt = new DateTime();
            DateTimeFormatter formas = DateTimeFormat.forPattern( "dd/mm/yyyy HH:MM" );
            String date = dt.toString( formas );
     
            Commande cmd = new Commande();
     
            cmd.setCl( client );
     
            cmd.setDate( date );
     
            try {
                validationMontant( montant );
            } catch ( Exception e ) {
                setErreurs( ATT_MONTCOMMANDE, e.getMessage() );
            }
     
            cmd.setMontant( montant );
     
            try {
     
                validationMDpayement( mdpayement );
            } catch ( Exception e ) {
                setErreurs( ATT_MDPAIMENT, e.getMessage() );
            }
            cmd.setMode_paiement( mdpayement );
     
            try {
     
                validationstatpayement( statpayement );
            } catch ( Exception e ) {
                setErreurs( ATT_STATPAIMENT, e.getMessage() );
            }
            cmd.setStatus_paiment( statpayement );
     
            try {
                validationMDlivraison( modelivraison );
            } catch ( Exception e ) {
                setErreurs( ATT_MDLIVRAISON, e.getMessage() );
            }
            cmd.setMode_livraison( modelivraison );
     
            try {
                validationstatlivraison( statlivraison );
            } catch ( Exception e ) {
                setErreurs( ATT_STATLIVRAISON, e.getMessage() );
            }
            cmd.setStatus_livraison( statlivraison );
     
            if ( erreur.isEmpty() ) {
                resultas = "Inscription Commande avec succès";
            } else {
                resultas = "Inscription Commande echoué";
            }
     
            return cmd;
     
        }
    Bean client :

    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
    public class Client {
     
        private String nom;
        private String prenom;
        private String adresse_de_livraison;
        private String telephone;
        private String email;
     
        public Client() {
            super();
        }
     
        public String getTelephone() {
            return telephone;
        }
     
        public void setTelephone( String telephone ) {
            this.telephone = telephone;
        }
     
        public String getNom() {
            return nom;
        }
     
        public String getPrenom() {
            return prenom;
        }
     
        public String getAdresse_de_livraison() {
            return adresse_de_livraison;
        }
     
        public String getEmail() {
            return email;
        }
     
        public void setNom( String nom ) {
            this.nom = nom;
        }
     
        public void setPrenom( String prenom ) {
            this.prenom = prenom;
        }
     
        public void setAdresse_de_livraison( String adresse_de_livraison ) {
            this.adresse_de_livraison = adresse_de_livraison;
        }
     
        public void setEmail( String email ) {
            this.email = email;
        }
     
    }
    Bean commande :

    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
    public class Commande {
     
        private String date;
        private String montant;
        private String mode_paiement;
        private String status_paiment;
        private String mode_livraison;
        private String status_livraison;
     
        public Client  cl;
     
        public Commande() {
            super();
     
        }
     
        public Client getCl() {
            return cl;
        }
     
        public void setCl( Client cl ) {
            this.cl = cl;
        }
     
        public String getDate() {
            return date;
        }
     
        public String getMode_paiement() {
            return mode_paiement;
        }
     
        public String getStatus_paiment() {
            return status_paiment;
        }
     
        public String getMode_livraison() {
            return mode_livraison;
        }
     
        public String getStatus_livraison() {
            return status_livraison;
        }
     
        public void setDate( String date ) {
            this.date = date;
        }
     
        public String getMontant() {
            return montant;
        }
     
        public void setMontant( String montant ) {
            this.montant = montant;
        }
     
        public void setMode_paiement( String mode_paiement ) {
            this.mode_paiement = mode_paiement;
        }
     
        public void setStatus_paiment( String status_paiment ) {
            this.status_paiment = status_paiment;
        }
     
        public void setMode_livraison( String mode_livraison ) {
            this.mode_livraison = mode_livraison;
        }
     
        public void setStatus_livraison( String status_livraison ) {
            this.status_livraison = status_livraison;
        }
     
    }
    form_client.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
     <div>
     
                    <fieldset><!-- Encarde le formulaire -->
                        <legend>Informations client</legend> <!-- Met le text dans le cadre -->
     
                        <label for="nomClient">Nom <span class="requis">*</span></label>
                        <input type="text" id="nomClient" name="nomClient" value="<c:out value="${client.nom}"/>" size="20" maxlength="20" />
                        <span><c:out value="${form.erreur.nomClient}"/></span>
                        <br />
     
                        <label for="prenomClient">Prénom </label>
                        <input type="text" id="prenomClient" name="prenomClient" value="<c:out value="${client.prenom}"/>" size="20" maxlength="20" />
                        <span><c:out value="${form.erreur.prenomClient}"/></span>
                        <br />
     
                        <label for="adresseClient">Adresse de livraison <span class="requis">*</span></label>
                        <input type="text" id="adresseClient" name="adresseClient" value="<c:out value="${client.adresse_de_livraison}"/>" size="20" maxlength="20" />
                        <span><c:out value="${form.erreur.adresseClient}"/></span>
                        <br />
     
                        <label for="telephoneClient">Numéro de téléphone <span class="requis">*</span></label>
                        <input type="text" id="telephoneClient" name="telephoneClient" value="<c:out value="${client.telephone}"/>" size="20" maxlength="20" />
                        <span><c:out value="${form.erreur.telephoneClient}"/></span>
                        <br />
     
                        <label for="emailClient">Adresse email</label>
                        <input type="text" id="emailClient" name="emailClient" value="<c:out value="${client.email}"/>" size="20" maxlength="60" />
                        <span><c:out value="${form.erreur.emailClient}"/></span>
                        <br/><br>
     
     
                    </fieldset>
     
     
            </div>
    client.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
    <body>
     
     
     
    <form action="<c:url value="/CreationClient" />" method="post">
     
    <c:import url="/inc/form_client.jsp"/>
    <br>
    <c:out value="${form.resultas}"/>
    <br>
                    <input type="submit" value="Valider" />
                    <input type="reset" value="Remettre à zéro" /> <br />
     
    </form>
     
    </body>
    commande.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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <body>
     
     
      <form action="<c:url value="/CreationCommande" />" method="post">
     
    				<%-- Petite astuce ici : placer le client accessible via  
                     l'EL ${ commande.client } dans une variable "client" de 
                     portée request, pour que le code du fragment fonctionne
                     à la fois depuis le formulaire de création d'un client 
                     et depuis celui de création d'une commande. --%>
     
                    <c:set var="client" value="${commande.cl}" scope="request" />
     
                        <c:import url="/inc/form_client.jsp" />
     
     
     
                    <fieldset>
                        <legend>Informations commande</legend>
     
     
                        <label for="dateCommande">Date <span class="requis">*</span></label>
                        <input type="text" id="dateCommande" name="dateCommande" value="<c:out value="${commande.date}"/>" size="20" maxlength="20" disabled="disabled" />
     
                        <br />
     
                        <label for="montantCommande">Montant <span class="requis">*</span></label>
                        <input type="text" id="montantCommande" name="montantCommande" value="<c:out value="${commande.montant}"/>" size="20" maxlength="20" />
                        <span><c:out value="${forma.erreur.montantCommande}"/></span>
                        <br />
     
                        <label for="modePaiementCommande">Mode de paiement <span class="requis">*</span></label>
                        <input type="text" id="modePaiementCommande" name="modePaiementCommande" value="<c:out value="${commande.mode_paiement}"/>" size="20" maxlength="20" />
                       	<span><c:out value="${forma.erreur.modePaiementCommande}"/></span>
                        <br />
     
                        <label for="statutPaiementCommande">Statut du paiement</label>
                        <input type="text" id="statutPaiementCommande" name="statutPaiementCommande" value="<c:out value="${commande.status_paiment}"/>" size="20" maxlength="20" />
                        <span><c:out value="${forma.erreur.statutPaiementCommande}"/></span>
                        <br />
     
                        <label for="modeLivraisonCommande">Mode de livraison <span class="requis">*</span></label>
                        <input type="text" id="modeLivraisonCommande" name="modeLivraisonCommande" value="<c:out value="${commande.mode_livraison}"/>" size="20" maxlength="20" />
                        <span><c:out value="${forma.erreur.modeLivraisonCommande}"/></span>
                        <br />
     
                        <label for="statutLivraisonCommande">Statut de la livraison</label>
                        <input type="text" id="statutLivraisonCommande" name="statutLivraisonCommande" value="<c:out value="${commande.status_livraison}"/>" size="20" maxlength="20" />
                        <span><c:out value="${forma.erreur.statutLivraisonCommande}"/></span>
                        <br />
                    </fieldset>
                    <br>
     
                    <c:out value="${forma.resultas}"/>
     
     
                    <br><br>
                    <input type="submit" value="Valider" />
                    <input type="reset" value="Remettre à zéro" /> <br />
                </form>
     
     
    </body>

  2. #2
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Poste les messages d'erreur.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 174
    Points : 51
    Points
    51
    Par défaut
    Il n y 'as pas de message d'erreur , c'est juste dans la page commande.jsp , la partie de la commande affiche les erreur devant chaque champs (montant , status livraison ..) mais ne traite pas celles du nom ,prénom .. en haut .. Car c'est 2 form differentes

  4. #4
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut
    Soit plus précis.
    Quand tu cliques sur ton bouton, tu appelles quelle Servlet, parce que je vois que tu traites chaque traitement séparément. Si tu veux faire les deux traitements en même temps, tu appelles ClientForm dans CommandeForme. N'oublie pas d'envoyer les données aussi du Client dans la requête quand tu affiche le résultat final.

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/08/2012, 05h05
  2. [Servlet][bean XML]le chemin absolu
    Par zaoueche dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 13/02/2006, 15h51
  3. [servlet][bean]comment récupérer l'objet request
    Par otminou dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/09/2004, 14h40
  4. [servlet][bean] return d'une variable
    Par LoLoSS dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/05/2004, 16h59
  5. [debutant][servlet]lien entre formulaire et servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/03/2004, 08h54

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