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 :

Problème redirection vers une page JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2011
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2011
    Messages : 126
    Points : 69
    Points
    69
    Par défaut Problème redirection vers une page JSP
    Bonjour,
    Je souhaites rediriger ma page après modification sur un étudiant vers la page index mais j'ai ce 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Type Rapport d''exception
     
    message java.lang.NullPointerException
     
    description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
     
    exception
     
    org.apache.jasper.JasperException: java.lang.NullPointerException
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:594)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:510)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
     
    cause mère
     
    java.lang.NullPointerException
    	org.apache.jsp.Index_jsp._jspService(Index_jsp.java:111)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:472)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    Voila le code de la servlet qui s'occupe de la modification :
    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
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
     
    		String cne = request.getParameter("cne");
    		System.out.println(cne);
    		Etudiant etudiant = new EtudiantDAO().rechercherEtudiant(cne);
    		System.out.println(etudiant);
    		request.setAttribute("etudiant", etudiant);
    		RequestDispatcher rd = request.getRequestDispatcher("ModifierForm.jsp");
    		rd.forward(request, response);
     
    	}
     
    	/**
             * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
             *      response)
             */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
     
    		String cne= request.getParameter("cne");
     
    		String nom =request.getParameter("nom");
     
    		String prenom =request.getParameter("prenom");
     
    		String dateNaissance = request.getParameter("dateNaissance");
     
    		String lieu = request.getParameter("lieu");
     
    		Etudiant e=new Etudiant(cne,nom,prenom,dateNaissance,lieu);
    		new EtudiantDAO().modifierEtudiant(e);
     
    		response.sendRedirect("Index.jsp");
    	}

    Voila le code de ma 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
    38
    39
    40
    41
    42
    43
    44
    45
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.*"%>
    <%@ page import="ma.noteactivite.entities.*"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <!-- Le styles -->
    <link href="static/css/bootstrap.css" rel="stylesheet">
    <title>Insert title here</title>
    </head>
    <body>
    	<%
                    Collection<Etudiant> et = (Collection<Etudiant>) request.getAttribute("etudiants");
            %>
    	<table class="table" width="100%" border="1">
    		<tr>
    			<th>CNE</th>
    			<th>Nom</th>
    			<th>Prenom</th>
    			<th>Date</th>
    			<th>Lieu</th>
    		</tr>
    		<%
                            for (Etudiant e : et) {
                    %>
     
    		<tr>
     
    			<th><%=e.getCne()%></th>
    			<th><%=e.getNom()%></th>
    			<th><%=e.getPrenom()%></th>
    			<th><%=e.getDateNaissance()%></th>
    			<th><%=e.getLieu()%></th>
    			<th><a class="btn btn-primary" name="supprimer">Supprimer</a><a
    				href="modifierEtudiant?cne=<%=e.getCne()%>" class="btn btn-success"
    				name="modifier">Modifier</a></th>
    			<%
                                    }
                            %>
    		</tr>
    	</table>
    </body>
    </html>
    Merci d'avance

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    12 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 12 373
    Points : 29 307
    Points
    29 307
    Billets dans le blog
    2
    Par défaut
    Salut,

    Dans ta jsp, tu vas chercher un attribut de requête nommé etudiants :

    Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
    Collection<Etudiant> et = (Collection<Etudiant>) request.getAttribute("etudiants");
    puis tu parcours cette collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (Etudiant e : et) {
    C'est là probablement qu'a lieu la NullPointerException.

    Mais dans le post, là où se fait le forward, il n'y a pas de <scope >= request>.setAttribute("etudiants", quelque chose de pas null)... si cette collection n'est pas mis en attribut dans un scope > request (session, application), ailleurs, l'attribut n'existe pas, donc sa valeur est null.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2011
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2011
    Messages : 126
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    Je récupère ma liste d'étudiant à l'aide d'une autre servlet et l'attribut etudiants c'est la récupération de la liste d'étudiant de la base de donnée
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		Collection <Etudiant> etudiants = new EtudiantDAO().rechercherToutEtudiant();
    		for (Etudiant et: etudiants)
    		{
    			System.out.println(et.getNom());
    		}
    		request.setAttribute("etudiants", etudiants);
    		RequestDispatcher rq = request.getRequestDispatcher("Index.jsp");
    		rq.forward(request, response);
    	}

    la page Index.jsp s'affiche bien au début au lancement du site c'est au moment de la redirection après la modification que j'ai ce message

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    12 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 12 373
    Points : 29 307
    Points
    29 307
    Billets dans le blog
    2
    Par défaut
    Les attributs de scope request sont justement visibles uniquement par la requête qui les a affecter. Tu ne peux pas faire un request.setAttribute("x", value) dans une requête, et le récupérer dans une autre. Si les servlets ne sont pas chaînées par forward dans la même requête, ce sont des requêtes différentes.

    Ce que tu peux faire c'est faire une servlet dont le but est d'engager la vue Index.jsp, avec les données nécessaires (mise en attribut par la servlet) et forwarder vers cette servlet. Ou alors, il faut que les deux servlets le fassent. Bien sûr ce serait plus simple de charger les données dans la jsp (donc pas d'attribut), mais la jsp étant du domaine de la vue (MVC), on ne devrait pas. Donc c'est bien que ça soit des servlets qui se chargent de ça. Mais ce n'est pas parce qu'une servlet le fait, que l'attribut est disponible lorsque le forward vers Index.jsp est fait par une autre.
    Si les données ne sont pas contextuelles à une requête, tu peux aussi mettre l'attributs en session. Il faut juste bien penser à le mettre à jour à chaque fois qu'il est modifié. Ce qui n'est pas évident en multi utilisateurs.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2011
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2011
    Messages : 126
    Points : 69
    Points
    69
    Par défaut
    Oui c'est vrai, je redirigais vers une page jsp alors que la liste se remplit depuis la servlet
    J'ai fais la redirection vers la servlet qui rempli la liste à partir de la base de donnée est sa fonctionne
    Merci

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

Discussions similaires

  1. redirection vers une page jsp en cochant un bouton radio
    Par fragancia dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 18/05/2013, 21h52
  2. Redirection vers une page jsp
    Par cesear89 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/04/2011, 10h16
  3. Redirection vers une page jsp d'erreur
    Par ThomasParis dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/02/2010, 13h01
  4. [PHP-JS] Problème de redirection vers une page html
    Par Don-Leplang dans le forum Langage
    Réponses: 4
    Dernier message: 07/04/2007, 20h16
  5. [JSP] Mauvaise redirection vers une page
    Par taroudant dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/07/2006, 15h06

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