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:
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:
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:
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:
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:
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:
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:
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:
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:
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> |