IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Gestion Formulaire JSP -> Servlet -> JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club Avatar de sisiniya
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 67
    Points
    67
    Par défaut 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 : 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>
    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
     
    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 : 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 :
    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){
    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.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il faut ajouter un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ( request.getAttribute("Champ2") != null )
    {
       champ2 = (String) request.getAttribute("Champ2");
    }
    if ( request.getAttribute("Champ1") != null )
    {
       champ1 = (String) request.getAttribute("Champ1");
    }
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre du Club Avatar de sisiniya
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 67
    Points
    67
    Par défaut
    Voilà la page index.jps avec l'ajout de votre ligne :

    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
     
     
    <body>
        <%
                    String champ1;
                    String champ2;
                   
     
     
                    if ( request.getAttribute("Champ1") != null )
                    {
                        champ2 = (String) request.getAttribute("Champ2").toString();
                        champ1 = (String) request.getAttribute("Champ1").toString();
                    }
                    else
                        {
                            champ2 = "";
                            champ1 = "";
                        }
                    
         %>
     
        		<form action = "traite" method = "post">
                    Nom : <input <% if(champ1.equals("") && request.getAttribute("Champ1") != null) out.print("id = \"err\""); %> name = "NomChamp1" type = "text" value = "<%= champ1%>">
    				<br>
                    Prénom : <input <% if(champ1.equals("") && request.getAttribute("Champ1") != null) out.print("id = \"err\""); %> name = "NomChamp2" type = "text" value = "<%= champ2%>">
    				<br>
    				<input type = "submit" name = "envoyer" value = "Envoyer">
    			</form>
     
     
    </body>
    mais dans le cas ou j'ai nom valide et prénom est vide, Normalement il doit me colorer juste prenom, or il colore les deux champs !

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ben déjà, si tu avais vraiment suivi mon exemple, tu aurais dû coder ceci :
    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
                    if ( request.getAttribute("Champ1") != null )
                    {
                        champ1 = (String) request.getAttribute("Champ1") ;
                    }
                    else
                    {
                            champ1 = "";
                    }
                     if ( request.getAttribute("Champ2") != null )
                    {
                        champ2 = (String) request.getAttribute("Champ2") ;
                    }
                    else
                    {
                            champ2 = "";
                    }
    Et puis, dans les deux balises input, tu fais le test sur le même champ champ1.

    Enfin, sinon, pourquoi n'appelles-tu pas tout simplement tes champs et es objets nom et prenom ?
    Ce serait déjà plus logique et tu t'y retrouverais plus facilement.
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre du Club Avatar de sisiniya
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 67
    Points
    67
    Par défaut
    :-) Oui Oui j'ai pas fait attention pour les même champs .

    S'il vous plaît une question :

    Si cette ligne request.getAttribute("Champ1") != null désigne que j'ai effectué un clik sur le bouton ( car si je ne clik pas l'expression est égal à null ), alors il suffit juste de faire le test sur l'un des champs, car c'est beaucoup couteux si j'ai un formulaire en plusieurs champs ??

    Merci

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Mais si tu fais le test seulement sur un des champs, si ce champ n'est pas valide, tous tes champs seront colorés.
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Membre du Club Avatar de sisiniya
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 67
    Points
    67
    Par défaut
    Je vous remercie infiniment pour vos explication .

    Si vous me permettez une autre question :

    Je veux faire des testes sur les champs ( si il est String ou entier ou e-mail valide ....) dans La servlet, le problème c'est que quand je veux colorer ceux qui ne sont pas valide dans la page JSP, je dois réecrire dans chaque champ ce teste , est ce qu'il y a une méthode mieux que ça ??

    Merci beaucoup .

  8. #8
    Membre du Club Avatar de sisiniya
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 67
    Points
    67
    Par défaut
    Merci problème résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. liaison jsp vers servlet vers jsp
    Par wafabrj dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/06/2012, 16h07
  2. Utiliser les JSP et servlets pour un formulaire
    Par james23 dans le forum Servlets/JSP
    Réponses: 38
    Dernier message: 23/08/2010, 19h30
  3. formulaire avec jsp ou servlet
    Par ulysse031 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/08/2008, 14h33
  4. Fichier JSP avec servlet et formulaire
    Par axel119 dans le forum Servlets/JSP
    Réponses: 25
    Dernier message: 08/08/2007, 14h24
  5. [ SERVLET ] [JSP ] Redirection servlet vers JSP
    Par Enfa dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/02/2005, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo