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 :

warning sur une jsp incomprehensible


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut warning sur une jsp incomprehensible
    Bonjour,
    sur ce code j'ai sur l'id="pierre" un message jaune
    "La variable local *Pierre* n'est pas lu".
    Pourtant le jsp fonctionne, mais il semble que je ne devrai pas avoir d'alerte ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@ page language="java" contentType="text/html; charset=UTF-8" 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>
    </head>
    <body>
    <jsp:useBean id="pierre" class="JavaBean.NombreAleatoire" scope="session" />
    <h2>Nombre aléatoire :</h2>
    <h3><jsp:getProperty name="pierre" property="nombre" /></h3>
    </body>
    </html>
    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
    package JavaBean;
    import java.io.*;
     
     public class GenereAleas extends javax.servlet.http.HttpServlet 
     implements javax.servlet.Servlet 
     {
     
    	public GenereAleas() {
    		super();
    	}
     
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    	throws ServletException, IOException 
    	{
    		HttpSession session = request.getSession();
    		if(!session.isNew()) {
    			session.invalidate();
    			session = request.getSession();
    		}
     
    		NombreAleatoire p = new NombreAleatoire();
    		p.setNombre(89.00);
    		session.setAttribute("pierre", p);
    		RequestDispatcher pp = request.getRequestDispatcher("/affiche.jsp");
    		pp.forward(request, response);
    	}
     
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    	throws ServletException, IOException 
    	{
    		doGet(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
    23
    24
    25
    26
    package JavaBean;
    import java.util.*;
    public class NombreAleatoire 
    {
    	private double nombre;
     
    	public double getNombre() {
    		return nombre;
    	}
    // avec le constructeur
    	public NombreAleatoire() {
    	super();
    		//this.nombreAleatoire1 = nombreA;
    		//nombreAleatoire1= Math.random()*500;	
    	}
     
    	public void setNombre(double s) {
    		this.nombre= Math.random()*500;
     
    	}
     
    	public void aleas()
    	{
    		this.nombre= Math.random()*500;
    	}
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Par défaut
    bonjour,

    je crois qu'au lieu de mettre class="JavaBean.NombreAleatoire" , tu mets plûtot type="JavaBean.NombreAleatoire". car

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:useBean id="pierre" class="JavaBean.NombreAleatoire" scope="session" />
    est equivalent à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    JavaBean.NombreAleatoire pierre= (JavaBean.NombreAleatoire)
    session.getAttribute("pierre");
    if (pierre== null)
    {
    pierre= new JavaBean.NombreAleatoire();
    session.setAttribute("pierre", pierre);
    }
    et toi dans la servlet tu mets pierre dans la session donc ta pas besoin du if...
    tu n'as qu'à specifier le type de ton bean pierre

  3. #3
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    JavaBean.NombreAleatoire pierre= (JavaBean.NombreAleatoire)
    session.getAttribute("pierre");
    if (pierre== null)
    {
    pierre= new JavaBean.NombreAleatoire();
    session.setAttribute("pierre", pierre);
    }
    ce code veux dire :
    si la page jsp a dans sa portée session l'attribut de nom pierre de la classe NombreAleatoire, alors ont peux l'utiliser ensuite.
    L'attribut étant de portée session, il sera vu dans les autres pages jsp de la session de cet utilisateur.
    Je ne comprend pas se que tu a voulu me dire ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Par défaut
    je m'excuse, j'étais pa assez clair

    en fait je t'ai juste suggéré de changer class par type car ton bean pierre est stocké une fois pour toute dans la session et cela avant d'arriver à la jsp.

    dans _jsp.java equivalent tu trouveras ce test qui ne sert

  5. #5
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    Ce n'est surement pas type à la place de class qui renvoie une erreur 500 ?
    en plus mon code ne fonctionne plus mais je ne comprend pas pourquoi.
    Pourtant je suis à la base du jsp ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Par défaut
    Perso, je n'aime pas utiliser le truc <jsp:useBean ... > ... En fait, je n'ai jamais réussis à le faire fonctionner ... De plus, n'étant pas infographiste, je préfère nettement l'utilisation du bon vieux code java (comme inscrit plus haut), cela fonctionne à merveille alors que la ligne <jsp:useBean ...> n'a jamais fonctionné.


    Enfin, le problème n'est pas la. Déjà, tu peurrais m'indiquer à quoi sert le "super()" dans le constructeur de ton bean (qui ne dérive de rien ...!)!??


    Pour info, le jsp:useBean utilise 3 portées de variable:
    - requette (cela est aussi faisable en ajouter un attribu directement dans request
    - session (pour cela, il faut utiliser request.getSession(true => pour créer la session si inexistante).setAttribute
    - application (pour cela, il faut régler un attribu DANS le contexte de la servle => getServletContext().setAttribute je pense)


    Peut etre que de mon coté, j'ai utilisé useBean avec la mauvaise portée ... mais en tout cas, l'utilisation du bon vieux code java à toujours fonctionné et j'ai jamais eu d'erreur farfelue

Discussions similaires

  1. [MySQL] warning sur une requete
    Par nani1 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/04/2008, 16h31
  2. pb d'affichage de form sur une jsp avec tomcat
    Par startin dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 25/05/2007, 09h32
  3. problem de saisie d'attribut sur une jsp
    Par anouss dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/05/2007, 08h35
  4. affichage d'une donnée de bean sur une jsp
    Par freestyler1982 dans le forum Struts 1
    Réponses: 1
    Dernier message: 09/11/2006, 10h02
  5. [debutant]renvoyer sur une jsp depuis une servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/03/2004, 11h55

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