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 :

[JSP] Appeler une fonction


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut [JSP] Appeler une fonction
    Bonjour,

    Je suis débutant en JSP et j'ai une erreur incompréhensible (pour moi).
    Voici tout d'abord le code en question :

    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
     
    <%@ page import="java.lang.* " %>
    <%!
            public void ecrit(String mot)
            {
     
                    out.println("Le mot est : "+mot+".");
            }
     
    %>
    <html>
    <head></head>
    <body>
    appel de la fonction jsp:ecrit<br>
    <%
            ecrit("ca marche !");
                    out.println("ca marche !");
     
    %>
    Fin de la fonction<br>
    </body>
    </html>
    Mon problème vient de l'instruction qui fonctionne bien dans le corps de la page HTML mais qui me provoque une erreur dans la fonction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cannot resolve symbol
    symbol  : variable out 
    location: class org.apache.jsp.testfonction_jsp
    		out.println("Le mot est : "+mot+".");
                    ^
    1 error
    Je ne comprend pas pourquoi cela marche dans un cas et pas dans l'autre..

    Merci d'avance pour votre aide
    Patrick

  2. #2
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    t'as essayé en rajoutant System. devant out.println ??? Je ne sais pas si System est importé par défaut ds les JSP.
    Sinon il faut faire les imports adequats.

    @+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je viens d'essayer en rajoutant System.

    Cela ne provoque plus d'erreur de compilation mais cela n'écrit rien à l'écrant pour autant ???!!!!

    Bizarre, non ???

    Patrick

  4. #4
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    tu peux faire voir le code de ta fonction "ecrit() " ???


    @+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    C'était la fonction indiquée en haut du premier post :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <%@ page import="java.lang.* " %>
    <%!
            public void ecrit(String mot)
            {
                    System.out.println("Le mot est : "+mot+".");
            }
     
    %>
    Patrick

  6. #6
    Membre actif
    Avatar de Didier
    Profil pro
    Developper
    Inscrit en
    Mars 2002
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developper

    Informations forums :
    Inscription : Mars 2002
    Messages : 163
    Points : 299
    Points
    299
    Par défaut
    Quand tu déclare une focntion dans une page JSP avec le tag <%!
    la fonction est déclaré statique. Elle n'as donc pas accès au variable de classe (dans ton cas : classe=page JSP), et par conséquent à la variable out.

    Il suffit de la passer en paramètre à ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <%! 
       public void ecrit(String mot, OutputStream out) 
       { 
          out.println("Le mot est : "+mot+"."); 
       }
    %>

    A+

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Ca marche pas !

    Je ne pense pas que ce soit un problème de visibilité de variable puisque je nai pas de variable "out".

    Il s'agit plutot de trouver la bonne méthode qui permet d'écrire une phrase à l'écran.
    Et, ce que je ne comprends pas, c'est que dans les tags <% il suffit d'inscrire out.println("maphrase"); et que cette syntaxe ne fonctionne pas dans les tags <%!....

    merci
    Patrick

  8. #8
    Membre actif
    Avatar de Didier
    Profil pro
    Developper
    Inscrit en
    Mars 2002
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developper

    Informations forums :
    Inscription : Mars 2002
    Messages : 163
    Points : 299
    Points
    299
    Par défaut
    Lorsque tu créé une pages JSP celle-ci hérite automatiquement d'une classe (dépendant de ton moteur de servlet) et implémentant HttpJspPage
    Dans cette classe, il existe une variable out (provenant de HttpServletResponse).

    Est-ce que cela clarifie un peu la situation ?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Est-ce que cela clarifie un peu la situation ?
    Oui et Non.

    Oui, car je comprends mieux ta réponse précédente et le coup de la variable out,

    Non, car je suis toujours dans une impasse.

    Alors, je vais formuler mon post autrement :

    Comment, en JSP, appeler une fonction afin qu'elle mette en forme un texte passé en paramètre. Par exemple appeler une fonction qui s'appelerais gras(String mot) et qui renverait au navigateur "<b>mot</b>" pour affichage du mot en gras... Ce n'est qu'un exemple, mais je pense qu'à partir de là je pourrais me débrouiller seul pour générer par exemple des <option> dynamiquement et d'autres choses du même genre.

    Patrick

  10. #10
    Membre actif
    Avatar de Didier
    Profil pro
    Developper
    Inscrit en
    Mars 2002
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developper

    Informations forums :
    Inscription : Mars 2002
    Messages : 163
    Points : 299
    Points
    299
    Par défaut
    Tu pourrais chercher un peu plus

    J'espère que ca va t'aider :
    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
     
    <%@ page import="java.lang.*,java.io.*" %>
    <%!
       public void ecrit(String mot, JspWriter out) throws IOException
       {
          out.println("<b>"+mot+"</b>");
       }
     
    %>
    <html>
    <head></head>
    <body>
    appel de la fonction jsp:ecrit<br>
    <%
       ecrit("ca marche !",out);
     
    %>
    Fin de la fonction<br>
    </body>
    </html>

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Tu pourrais chercher un peu plus
    Pour info, je suis sur le problème depuis 2 jours.

    Je n'ai, jusqu'alors, rien trouvé d'assez bien expliqué pour pouvoir trouver cette solution.
    Peut-être est-ce du au fait que j'ai plus l'habitude de développer en ASP ou en PHP qui sont des langages bien plus souples ???!!!

    En tous cas, merci beaucoup pour cette aide. C'est un petit pas pour mon script mais un grand pas pour mon savoir !

    Patrick

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

Discussions similaires

  1. Appeler une fonction Javascript dans une page JSP
    Par bza88 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/10/2013, 15h17
  2. Comment faire un appel à une fonction Java en JSP
    Par persé dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/03/2013, 00h03
  3. appeler une fonction javascript lors du chargement de ma jsp
    Par lamis2009 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 01/05/2010, 22h31
  4. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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