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 :
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 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 ); } } }
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 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 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 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; }
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
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 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 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; } }
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
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; } }
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>
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 <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>
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>
Partager