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>