Bonjour,
Je rencontre un problème de submit et de redirection sur un formulaire.
Tout d'abord rapide contexte : pour un projet d'études je développe une application web pour la gestion d'une mutuelle (fictive). Après s'être connecté on accède à un espace ou on peut par exemple créer une garantie, assurance etc et l'enregistrer en base de données.
Le submit de la connexion se passe sans problème et j'arrive donc sur ma page espace_gestionnaire.jsp
Cependant lorsque je submit le formulaire pour créer une garantie, rien ne se passe sur la page
Voici une capture d'écran après avoir cliqué sur le submit :
On remarque que dans la barre d'adresse les paramètres du formulaires ne sont pas passés, il reste les paramètres entrés lors de la connexion.
Mais curieusement toutes mes méthodes de servlet, session et facade fonctionnent correctement et mon objet garantie est enregistré en base sans problème. J'ai paramétré des conditions d'erreurs dans la servlet (par exemple ne pas créer la garantie si les champs sont vides), ces conditions sont également respectées.
-->Donc ma première question : Pourquoi les paramètres ne passent pas dans la barre d'adresse ? Je précise que tous mes formulaires sont en GET et pas en POST.
Ensuite, le submit est censé déclencher une redirection sur la même page (donc toujours action gestionnaire) afin d'actualiser les données et retourner un message à l'attention de l'utilisateur. Comme vous pouvez le voir sur la capture d'écran ceci n'est pas le cas.
Je n'ai aucune erreur dans mon log de serveur (j'utilise GlassFish).
Egalement le problème ne semble concerner que cette page vu que la page de connexion fonctionne bien.
--> 2ème question : D'où peut venir ce problème de redirection ?
Ci dessous le formulaire en question :
La servlet :
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 <div class="tab-pane" id="creerGarantie"> <div class="col-lg-12"> <h5 style="color: #9f26aa">Créer une garantie <%=message%></h5> <form action="/MutuelleHardis-war/MutuelleHardisServlet" method="get" role="form" class="contactForm"> <div class="form-row"> <div class="form-group col-lg-12"> <input type="text" name="libelle" class="form-control" id="libelle" placeholder="Libellé de la garantie"/> <div class="validation"></div> </div> <div class="form-group col-lg-12"> <input type="text" name="montantCAS" class="form-control" id="montantRemboursementCAS" placeholder="Montant du remboursement CAS"/> <div class="validation"></div> </div> <div class="form-group col-lg-12"> <input type="text" name="montantNonCAS" class="form-control" id="montantRemboursementNonCAS" placeholder="Montant du remboursement non CAS"/> <div class="validation"></div> </div> <div class="form-group col-lg-12"> <label for="taxe">Type de montant :</label> <select id="typeMontant" name="typeMontant" class="form-control"> <option selected>Choisir...</option> <%for(int i=0;i<listeTypeMontantString.size();i++ ){%> <option value="<%=listeTypeMontant.get(i)%>"><%=listeTypeMontantString.get(i)%></option><%}%> </select> <div class="validation"></div> </div> <div class="form-group col-lg-12"> <label for="taxe">Module :</label> <select id="module" name="module" class="form-control"> <option selected></option> <%for(ModuleProduit module : listeModulesVersionMax){%> <option value="<%=module.getId()%>"><%=module.getLibelle()%></option><%}%> </select> <input type="hidden" name="action" value="creerGarantie"> <div class="validation"></div> </div> <div class="form-group col-lg-6"> <button type="submit" class="btn btn-dark">Créer la garantie</button> </div> </div> </form> </div> </div>
Code Java : 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
102
103
104
105
106
107
108
109
110
111
112
113
114 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); System.out.println("Servlet"); String jspClient = null; String action = request.getParameter("action"); if (action == null || action.equalsIgnoreCase("vide") || action.isEmpty()) { System.out.println("Accueil"); jspClient = "/Accueil/accueil.jsp"; String message=""; request.setAttribute("message", message); if(gestionInitialisation.initialiser(1)){ System.out.println("Initialisation déjà faite"); }else{ System.out.println("Première initialisation"); } } //MÉTHODE POUR L'AUTHENTIFICATION else if (action.equals("seConnecter")) { jspClient = seConnecter(request, response); } //MÉTHODE POUR LA CREATION D'UN DEVIS else if(action.equals("creerDevis")){ jspClient = creerDevis(request, response); } //MÉTHODE POUR LA CREATION D'UN CONTRAT else if(action.equals("creerContrat")){ jspClient = creerContrat(request, response); } //MÉTHODE POUR LA CRÉATION D'UNE PERSONNE MORALE else if (action.equals("creerPersonneMorale")) { jspClient = creerPersonneMorale(request, response); } //MÉTHODE POUR LA CRÉATION D'UNE PERSONNE PHYSIQUE else if (action.equals("creerPersonnePhysique")) { jspClient = creerPersonnePhysique(request, response); } //MÉTHODE POUR LA CRÉATION D'UNE PERSONNE PHYSIQUE ADHÉRENTE else if (action.equals("creerPersonnePhysiqueAdherente")) { jspClient = creerPersonnePhysiqueAdherente(request, response); } //MÉTHODE POUR LA CRÉATION D'UN GESTIONNAIRE else if (action.equals("creerGestionnaire")) { jspClient = creerGestionnaire(request, response); } //MÉTHODE POUR LA MODIFICATION D'UNE PERSONNE MORALE else if (action.equals("modifierPersonneMoraleAdresse")) { jspClient = modifierPersonneMoraleAdresse(request, response); } //MÉTHODE POUR LA MODIFICATION DES IDENTIFIANTS DE CONNEXION else if (action.equals("modifierLoginMotDePasse")) { jspClient = modifierLoginMotDePasse(request, response); } //MÉTHODE POUR LA CRÉATION D'UN EVENEMENT else if (action.equals("creerEvenement")) { jspClient = creerEvenement(request, response); } //MÉTHODE POUR LA CRÉATION D'UN VERSEMENT EVENEMENT else if (action.equals("creerVersementEvenement")) { jspClient = creerVersementEvenement(request, response); } //MÉTHODE POUR LA CRÉATION D'UNE GARANTIE else if (action.equals("creerGarantie")){ jspClient = creerGarantie(request,response); } //MÉTHODE POUR LA CRÉATION D'UN MODULE else if(action.equals("creerModule")){ jspClient = creerModule(request,response); } //MÉTHODE POUR LA CRÉATION D'UN PRODUIT else if(action.equals("creerProduit")){ jspClient = creerProduit(request,response); } //MÉTHODE POUR LA CRÉATION D'UNE TAXE else if(action.equals("creerTaxe")){ jspClient = creerTaxe(request,response); } RequestDispatcher Rd; Rd = getServletContext().getRequestDispatcher(jspClient); Rd.forward(request, response); try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet MutuelleHardisServlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet MutuelleHardisServlet at " + request.getContextPath() + "</h1>"); out.println("</body>"); out.println("</html>"); } }
Code Java : 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 protected String creerGarantie(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String jspClient="/Accueil/accueil.jsp"; String message=""; String libelle = request.getParameter("libelle"); String stringMontantCAS = request.getParameter("montantCAS"); String stringMontantNonCAS = request.getParameter("montantNonCAS"); String stringTypeMontant = request.getParameter("typeMontant"); if(libelle.trim().isEmpty() || stringMontantCAS.isEmpty() || stringMontantNonCAS.isEmpty() || stringTypeMontant.isEmpty()){ message = "Erreur - Vous n'avez pas rempli tous les champs obligatoires"; } else{ double montantCAS = Double.valueOf(stringMontantCAS); double montantNonCAS = Double.valueOf(stringMontantNonCAS); TypeMontant typeMontant = TypeMontant.valueOf(stringTypeMontant); if((montantCAS==0&&montantNonCAS==0)||montantCAS<0||montantNonCAS<0){ message = "Erreur - Valeur nulle ou négative"; } else{ Garantie garantie = gestionGarantie.creerGarantie(libelle, montantCAS, montantNonCAS, typeMontant, null); System.out.println(garantie.getLibelle()); message = "Garantie créée"; HttpSession session = request.getSession(false); session.setAttribute("listeGarantiesVersionMaxRequete", gestionGarantie.afficherGarantiesVersionMax()); } } request.setAttribute("message",message); return jspClient; }
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }
Merci d'avance pour votre aide![]()
Partager