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 :

Formulaire / RequestDispatcher


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Par défaut Formulaire / RequestDispatcher
    Bonjour,

    Mon problème est certainement ultra-classique...J'essaie de faire un script Jsp qui, à partir d'un formulaire avec deux champs me redirige vers des pages html (ou jsp) différentes (page1.jsp et page2.jsp) après avoir cliqué sur le bouton "envoyer" du formulaire.
    J'y suis arrivé , mais après avoir fait des modifs je n'y arrive plus..
    Mon code:
    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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <html>
    <head>
    <title>page d accueil</title>
    </head>
    <body>
    	<form >
    		<select name=auteur>
    			<option value = "1">Luc</option>
    			<option value = "2">Toto</option>
    			<input type="submit" value="OK"></input>
    		</select>
    		<% String parametre = request.getParameter("auteur");
                            RequestDispatcher requ = null;
                    if(parametre == "Luc")
                    {
                            System.out.print("luc");
                            request.getRequestDispatcher("/page1.jsp").forward(request,response);
                    }
                    if(parametre == "Toto")
                    {
                            System.out.print("toto");
                            request.getRequestDispatcher("/page2.jsp").forward(request,response);
                    }
                    if(parametre == "null" )
                    {
                            System.out.print("bordel");
                    }
                    %>
     
    	</form>
    </body>
    </html>
    Ce qu'il se passe c'est que mon url varie entre
    http://localhost:8082/test/index.jsp?auteur=2
    et ...auteur=1 , et puis c'est tout,avec toujours le formulaire d'affiché.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    J'ai pas trop compris ta question, mais déjà t'as des erreurs xml et JAVA dans ton bout de code :
    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <html>
    <head>
    <title>page d accueil</title>
    </head>
    <body>
    	<form >
    		<select name="auteur">
    			<option value = "1">Luc</option>
    			<option value = "2">Toto</option>
    			<input type="submit" value="OK"></input>
    		</select>
    		<% String parametre = request.getParameter("auteur");
    			RequestDispatcher requ = null;
    		if(parametre.equals( "Luc"))
    		{
    			System.out.print("luc");
    			request.getRequestDispatcher("/page1.jsp").forward(request,response);
    		}
    		if(parametre.equals("Toto"))
    		{
    			System.out.print("toto");
    			request.getRequestDispatcher("/page2.jsp").forward(request,response);
    		}
    		if(parametre == null )
    		{
    			System.out.print("bordel");
    		}
    		%>
    		
    	</form>
    </body>
    </html>
    Je te les ai mis en couleur.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Par défaut
    En fait oubliez mon code.(merci néanmoins pour la correction ).
    Ce que je souhaite faire:
    J'ai un formulaire ( une liste déroulante).Je veux que si l'on choisit le choix 1 de la liste et que l'on clique sur le bouton envoyer on aille sur une page html, si l'on choisit le choix x , on aille sur une autre page html ...
    J'avais pensé à faire varier l'attribut action de <form> avec une String[] mais après...
    J'ai vu que y avait les ActionListener qui existaient lorsque l'on clique sur un bouton...
    Pouvez vous m'aiguiller sur l'astuce (ou la technologie) à employer?

  4. #4
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Bonjour,

    je vois que t'as compliqué un petit peu les choses! tu peux ajouter un évènement click JAVASCRIPT sur les options de ton select

    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select>
    <option onclick="location.href='page1.jsp'"> choix 1</option>
    <option onclick="location.href='page2.jsp'">choix2 </option>
    </select>
    En revanche j'ai pas fais attention aux erreurs sur ton code par contre il me parait que ce que t'as fait est logique. prendre la valeur de select et faire un forward. pour te simplifier la vie tu peux utiliser la balise forward fournit aux pages JSP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:forward page="page1.jsp"></jsp:forward>
    évites d'utiliser les dispatchers ils sont généralement utilisé dans les servlets dont y a que du code JAVA


    Citation Envoyé par magikk Voir le message
    En fait oubliez mon code.(merci néanmoins pour la correction ).
    Ce que je souhaite faire:
    J'ai un formulaire ( une liste déroulante).Je veux que si l'on choisit le choix 1 de la liste et que l'on clique sur le bouton envoyer on aille sur une page html, si l'on choisit le choix x , on aille sur une autre page html ...
    J'avais pensé à faire varier l'attribut action de <form> avec une String[] mais après...
    J'ai vu que y avait les ActionListener qui existaient lorsque l'on clique sur un bouton...
    Pouvez vous m'aiguiller sur l'astuce (ou la technologie) à employer?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Par défaut
    Sympa ton script javascript
    L'erreur principale c'est parametre.equals("1") (au lieu de Luc).
    Je crois que c'est un problème de récupération des paramètres: lorsque j'affiche 'parametre' , ça vaut 'null' une fois sur deux.Et vu que ça me prend un peu la tête je vais étudier JSF car j'ai l'impression en lisant la FAQ sur JSF que ça se prétait bien à ce problème.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Par défaut
    Par exemple pour ce code:
    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
     
    <html>
    <head>
    <title>page d accueil</title>
    </head>
    <body>
    	<form>
    		<select name="auteur">
    			<option value = "1">LucBesson</option>
    			<option value = "2">Toto</option>
    			<input type="submit" value="OK"></input>
    		</select>
    		<% 
                    String parametre = request.getParameter("auteur");
                    System.out.print("valeur de parametre : "+parametre);
                    //int un = Integer.parseInt("1");
                    //int deux = Integer.parseInt("2");
                    
                    if(parametre.equals("1"))
                    //if(parametre.equals(un))
                    {
                            System.out.println("page 1");
                    %>
     
    		<%
                    }
                    if(parametre.equals("2"))
                    //if(parametre.equals(deux))
                    {
                            System.out.println("page 2");
                    %>
     
    		<%} %>
     
    	</form>
    </body>
    </html>
    Mon paramètre vaut null:
    14 oct. 2010 02:08:56 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 2383 ms
    valeur de parametre : null14 oct. 2010 02:08:58 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
    java.lang.NullPointerException
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:74)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servle
    C'est normal?

  7. #7
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Salam,

    j'ai corrigé ton code maintenant ça marche.

    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>page d accueil</title>
    </head>
    <body>
    	<form>
    		<select name="auteur">
    			<option value = "1">LucBesson</option>
    			<option value = "2">Toto</option>
    		</select>
    		<input type="submit" value="OK" name="valider"/>
    		<% 
                    if(request.getParameter("valider")!=null){
                    String parametre = request.getParameter("auteur");
                    
                    if(parametre.equals("1"))
                    //if(parametre.equals(un))
                    {
                            System.out.println("page 1");
                    %>
     
    		<%
                    }
                    if(parametre.equals("2"))
                    //if(parametre.equals(deux))
                    {
                            System.out.println("page 2");
                    %>
     
    		<%} 
                    }%>
     
    	</form>
    </body>
    </html>
    si tu penses de le faire en JSF je t'encourage par ce que ce traitement de redirection tu peux le faire en JSF avec un bout de code XML et non pas Java.
    bon courage

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Par défaut
    Merci beaucoup.ça va bien me rendre service.

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

Discussions similaires

  1. Création d'un formulaire sous flash?
    Par ultrakas dans le forum Flash
    Réponses: 5
    Dernier message: 11/01/2005, 18h33
  2. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  3. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

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