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

Taglibs Java Discussion :

Mes variables ne sont pas remplacées par leur valeur [JSTL]


Sujet :

Taglibs Java

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut Mes variables ne sont pas remplacées par leur valeur
    Bonjour,

    J'ai découvert hier une toute petite partie de la puissance des JSTL et ça devrait bien m'aider dans mon appli. J'ai des POJO mappés sur une BD avec Hibernate et j'ai plus qu'à faire de l'affichage et du remplissage. J'ai fait un petit test mais mes variables ne sont pas remplacées par leur valeur.

    J'utilise Tomcat que je lance depuis Eclipse. J'ai bien ajouté toutes les librairies dans mon java build path. Voici mon arborescence :

    WEB-INF/
    .....web.xml
    .....LIB/
    ..........mes libs Hibernate
    ..........jstl.jar
    ..........standard.jar
    .....SRC/
    ..........monpkg/
    ...............ServletTest.java
    WEB/
    .....test.jsp

    Et le contenu des fichiers

    web.xml :
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
     
    <web-app>
       <display-name>test</display-name>
     
        <servlet>
            <servlet-name>test</servlet-name>
            <servlet-class>esp_client.metier.ServletTest</servlet-class>
            <load-on-startup>2</load-on-startup>
        </servlet>
     
        <servlet-mapping>
            <servlet-name>test</servlet-name>
            <url-pattern>/test</url-pattern>
        </servlet-mapping>
    </web-app>
    test.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
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="" errorPage="" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!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=iso-8859-1">
    <title>test</title>
    </head>
    <body>
    <%
    	String test = (String) request.getAttribute("test");
    %>
    <p>Variable JSTL - ${requestScope['test']}</p>
    <p>Scriplet - <%= test %></p>
    </body>
    </html>
    ServletTest.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void doGet(HttpServletRequest req, HttpServletResponse rep)
                throws ServletException, IOException {
     
            String test = "variable de test";
     
            // Ajout des objets nécessaire au JSP à la requête
            req.setAttribute("test", test);
     
            // Passage des paramètres à la partie présentation
            ServletContext sc = getServletContext();
            RequestDispatcher rd = sc.getRequestDispatcher("/web/test.jsp");
            rd.forward(req, rep);
        }
    Voilà. Quand je lance ma ServletTest, j'obtiens bien le code de ma variable en passant par les scriplet mais pas avec JSTL.
    Je n'ai pourtant pas de message d'erreur, j'ai du oublier un truc quelque part mais je ne trouve pas où.

    Merci pour votre aide !!!

  2. #2
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    tu ne peux te passer du <c:out que si tu es en jsp2.0 (donc tomcat 5 par exmple), sinon tu dois utiliser le tag complet pour utiliser les variables jstl

    teste comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <c:set var="myValue" value="a tag </tag>" />
    <c:out value="${myValue}" />
    si tu es en jsp2, tu peux faire effectivement

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    J'utilise Tomcat 5.5.7 avec le JDK 1.4.2 donc il ne devrait pas y avoir de problème à ce niveau là je pense.
    N'y a -t-il pas un problème dans mes fichiers de conf ?
    J'ai lu que parfois il fallait déclarer la taglib dans web.xml. Il me semble que je n'en ai pas besoin puisque j'ai copier les .jar dans mon répertoire de lib.

    J'ai testé ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <c:set var="myValue" value="a tag </tag>" />
    <c:out value="${myValue}" />
    Mais j'obtiens ${myValue} sur ma page.

  4. #4
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    si tu es en tomcat 5.*, tu dois deja avoir les jstl en standard, pas la peine de les ajouter. En tout cas, l'expression language est dispo lui c'est sur.

    si tu as un objet en session, tu peux y acceder directement via ${monObjet.attribut}

  5. #5
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Ajoute ceci en début de JSP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page isELIgnored="false" %>

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Petit extrait de mon test_jsp.java, on voit quand même qu'il y a un petit problème, notamment à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.write("${requestScope['test']}");
    .
    Mon ${} est considéré comme une chaine de caractères, bizarre.

    Par contre, le code de test de lunatix parait interprété mais ne donne pas le résultat voulu quand même.

    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
    out.write("\r\n");
          out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
          out.write("<html>\r\n");
          out.write("<head>\r\n");
          out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\r\n");
          out.write("<title>test</title>\r\n");
          out.write("</head>\r\n");
          out.write("<body>\r\n");
          if (_jspx_meth_c_set_0(_jspx_page_context))
            return;
          out.write('\r');
          out.write('\n');
          if (_jspx_meth_c_out_0(_jspx_page_context))
            return;
          out.write('\r');
          out.write('\n');
     
    	String test = (String) request.getAttribute("test");
     
          out.write("\r\n");
          out.write("<p>Variable JSTL - ");
          out.write("${requestScope['test']}");
          out.write("</p>\r\n");
          out.write("<p>Scriplet - ");
          out.print( test );
          out.write("</p>\r\n");
          out.write("</body>\r\n");
          out.write("</html>\r\n");

  7. #7
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par ego
    Ajoute ceci en début de JSP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page isELIgnored="false" %>
    Ca marche !
    Trop bien !!!

    Un grand merci à Lunatix et Ego pour leur aide.
    Alors par contre, avant de clore le sujet, puis-je avoir une explication...

    Je dois avoir une variable de configuration mal positionnée quelque part, mais où ?

  8. #8
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Quelqu'un pourrait-il me dire si je dois systématiquement ajouter <%@ page isELIgnored="false" %> à toutes mes JSP où si je peux positionner ça dans un fichier de conf.
    Merci !

  9. #9
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Pb de version de JSP je crois me rappeler (je ne me souviens plus des numéros de version , désolé)

  10. #10
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Ok, merci pour l'info. Donc ce n'est pas un problème dans ma config. Si j'ai un problème de version de JSP, faut-il que j'en télécharge une autre ?

    Pourtant, les lib JSP ne sont-elles pas celles fournies par TOMCAT ?

    Merci.

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

Discussions similaires

  1. Réponses: 26
    Dernier message: 05/02/2007, 16h57
  2. [SQL] Les variables ne sont pas UPDATEES
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/09/2006, 17h30
  3. Réponses: 7
    Dernier message: 22/09/2006, 01h28
  4. [Cookies] Mes cookies ne sont pas créés
    Par YavaDeus dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2006, 09h41
  5. [XSL] Mes entités ne sont pas prises en compte
    Par trent94 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/07/2005, 18h49

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