Bonjour,
Descripition de situation :
index.jsp est une page contenant Un petit formulaire (Nom,Prenom + bouton) quand je clike sur ce bouton , on se dirige vers traite.java qui est une servlet qui va traiter la validité des Deux champs.
Si le teste est bon --- > se diriger vers la page Acceuil.jsp
Sinon je retourne à ma page index.jsp en Colorant les champs qui ne sont pas valide et aussi garder les valeurs des champs qui sont valide.
Je vous liste les 2 pages JSP , la srevlet :
Page : index.jsp
Servlet : traite.java
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 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <style type="text/css"> #err{ background-color : red; } </style> </head> <body> <%String champ1 = ""; String champ2 = ""; champ2 = request.getAttribute("Champ2").toString(); champ1 = request.getAttribute("Champ1").toString(); if(champ1 == null){ champ1 = ""; champ2 = ""; } %> <form action = "traite" method = "post"> Nom : <input <% if(champ1.equals("")) out.print("id = \"err\""); %> name = "NomChamp1" type = "text" value = "<%= champ1%>"> <br> Prénom : <input <% if(champ1.equals("")) out.print("id = \"err\""); %> name = "NomChamp2" type = "text" value = "<%= champ2%>"> <br> <input type = "submit" name = "envoyer" value = "Envoyer"> </form> </body> </html>
Page : Acceuil.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 public class traite extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException { String Str1 = request.getParameter("NomChamp1"); String Str2 = request.getParameter("NomChamp2"); request.setAttribute("Champ1",Str1); request.setAttribute("Champ2",Str2); if(Str1.equals("") || Str2.equals("")){ String nextJSP = "/index.jsp"; RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP); dispatcher.forward(request,response); } else{ String nextJSP = "/acceuil.jsp"; RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP); dispatcher.forward(request,response); } } }
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 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>BienVenue</h1> <hr> <% String champ2 = request.getAttribute("Champ2").toString(); String champ1 = request.getAttribute("Champ1").toString(); %> Nom : <%= champ1%> <br> Prénom : <%= champ2%> </body> </html>
Le Problème !
Voilà le message D'erreur :
Alors, c'est logique que dans le premier Loading de la page, on ne peut pas parler de request.getAttributte("....."); puisque cette information est bien évidement retournée par la servlet . Je suis assez Débutante en J2EE et je connais pas une méthode pour réussir ce teste .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête. exception org.apache.jasper.JasperException: Exception in JSP: /index.jsp:17 14: <body> 15: <%String champ1 = ""; 16: String champ2 = ""; 17: champ2 = request.getAttribute("Champ2").toString();18: champ1 = request.getAttribute("Champ1").toString(); 19: 20: if(champ1 == null){
Veuillez s'il vous plaît me corriger ce code , soit me proposer une autre Solution , et je serai très redevable .
Sisiniya.
Partager