Gestion Formulaire JSP -> Servlet -> JSP
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
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
|
<%@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> |
Servlet : traite.java
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
|
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);
}
}
} |
Page : Acceuil.jsp
Code:
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 :
Code:
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){ |
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 .
Veuillez s'il vous plaît me corriger ce code , soit me proposer une autre Solution , et je serai très redevable .
Sisiniya.