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 :

Pas d'évaluation lors d'utilisation d'EL [JSTL]


Sujet :

Taglibs Java

  1. #1
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut Pas d'évaluation lors d'utilisation d'EL
    Bonjour,
    J'ai rencontré un probleme avec l'utilisation des JSTL (Java Standard Tag Library), j'utilise l'api open source de Jakarata Apache, j'ai testé le Hello world (<c:out value="HelloWorld" />) et ça marche, mais ça ne marche plus du moment où je veux récuperer et afficher des variables d'instances ou des objets de la session, .. bref, tout ce qui est de la forme <c:out ${le-truc} />

    par exemple, j'écris dans la page jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <% String maValeur = "COOL !" ; %>
    <c:out value="${maValeur}" />
    ce qu'on attends comme résultat c'est l'écriture sur la page de COOL!, mais au lieu de ça j'obtient <c:out value="${maValeur}" />


    Qu'est ce qui ne marche pas ?

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 62
    Par défaut
    deja je croit que tu as une petite erreur
    pour declarer une variable il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%! String maValeur = "COOL !" ; %>

  3. #3
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par Kpone
    deja je croit que tu as une petite erreur
    pour declarer une variable il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%! String maValeur = "COOL !" ; %>
    Là tu déclares une variable statique

    santana2006 : peux tu poster davantage de code, donner la version de J2EE que tu utilises ?

    Eric

  4. #4
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    voici le code de la page jsp

    <%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
    ...

    <%
    String valeur = "5" ;
    %>

    <c:out value="${valeur}" />

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut Re: Probleme avec JSTL
    Citation Envoyé par santana2006
    par exemple, j'écris dans la page jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <% String maValeur = "COOL !" ; %>
    <c:out value="${maValeur}" />
    ce qu'on attends comme résultat c'est l'écriture sur la page de COOL!, mais au lieu de ça j'obtient <c:out value="${maValeur}" />


    Qu'est ce qui ne marche pas ?
    Le problème c'est que ta variable n'est mise dans aucun scope de ton application (page, request, session, application)...

    Essaie comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <% 
       String maValeur = "COOL !" ; 
       request.setAttribute("maValeur", maValeur);
    %>
    <c:out value="${maValeur}" />
    Donne nous également la version des spécifications servlets que ton serveur Web support.

  6. #6
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    mais prqoi je dois passer par mettre la variable dans la requete avant de la recuperer ?

    pr la version, j'utilise celle qui est avec tomcat 5.12 (je ne me rappelle pas de la version car je ne vous ecris pas actuellement depuis mon poste de travail

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par santana2006
    mais prqoi je dois passer par mettre la variable dans la requete avant de la recuperer ?
    Parce que c'est comme cela que fonctionne les ELs...

    ${maValeur} "correspond" au code Java suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pageContext.findAttribute ("maValeur");
    Qui recherche l'attribut "maValeur" dans les différents scopes (dans l'ordre : page, request, session, application).

    Cf : http://adiguba.developpez.com/tutori...e/jsp/el/#L1.4



    Il est impossible d'utiliser ${maValeur} pour une variable locale à la JSP, car cela provoquerait une erreur de compilation si elle n'est pas défini avant...

    Enfin le couple EL/JSTL a pour objectif de supprimer les scriptlets Java...

    a++

  8. #8
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    ok,
    je vais tenter si ça marche dès que c possible
    merci les gars

  9. #9
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    non ça ne marche pas

    voici le code de ma page web :

    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
    <%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
    <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
     
    <%@ include file="inc/entete.jsp" %>
    <%@ include file="inc/menu.jsp" %>
    <%@ include file="inc/menu-haut.jsp" %>
     
     
    <%@ page import="maktp.beans.BeanDeTest" %>
     
     
    <br />
    <br />
     
    <c:out value="Bonjour" />
    <br />
     
    <%
        String valeur = "5" ;
    %>
    <c:out value="${ valeur }" />
     
    <br />
     
    <br />
    <br />
     
     
    <br />
    <br />
     
    <%
       String maValeur = "COOL !" ;
       request.setAttribute("maValeur", maValeur);
    %>
    <c:out value="${maValeur}" /> 
     
    <%@ include file="inc/pied.jsp" %>
    et voici le resultat :


    Bonjour
    ${ valeur }




    ${maValeur}

  10. #10
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Etant donné que tu utilises les JSTL, il est dommage de faire de la scriptlet.
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <c:set var="maValeur" value="COOL!"/>
    <c:out value="${maValeur}" />
    Le scope par défaut pour le c:set est page, ce qui signifie que ta variable maValeur n'est accessible que dans cette page jsp.

  11. #11
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel version de la JSTL tu utilises (Quel URI contient le fichier c.tld) ?
    Quel serveur d'application tu utilises ? Version ? Standard J2EE ?

    a++

  12. #12
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Apparement les EL ne sont pas interpretées, non?
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  13. #13
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    wi, c la seule explication possible,
    lorsque je donne à value de c:out une valeur explicite (par exemple value="bonjour"), pas de probleme, mais lorsqu'il s'agit d'afficher d'une variable par exemple, ça ne marche pas

  14. #14
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    bonjour tout le monde
    j'ai finalement trouvé la source du problème, ça vient du web.xml, quand j'avais le probleme mon web.xml ressemblait à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <?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>
    ...
    </web-app>
    pour que les jstl fonctionnent correctement j'ai dù modifier ce fichier, pour qu'il ressemble finalement à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
        version="2.4">
     
    </web-app>

  15. #15
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Bonjour,

    dans un ancien projet voila ce que j'avais dans le 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
    22
    23
    24
    25
    26
    27
    28
    <?xml version="1.0" encoding="UTF-8"?>
    <!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></display-name>
     
    	(...)
     
    	<taglib>
    		<taglib-uri>http://jakarta.apache.org/taglibs/i18n-1.0</taglib-uri>
    		<taglib-location>/WEB-INF/tld/i18n.tld</taglib-location>
    	</taglib>
    	<taglib>
    		<taglib-uri>jstl/core</taglib-uri>
    		<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
    	</taglib>
    	<taglib>
    		<taglib-uri>jstl/fmt</taglib-uri>
    		<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
    	</taglib>
    	<taglib>
    		<taglib-uri>lolf/droits</taglib-uri>
    		<taglib-location>/WEB-INF/tld/droits.tld</taglib-location>
    	</taglib>
     
     
    	(...)
     
    </web-app>
    et les EL dans les tags jstl fonctionnaient très bien, notamment sous Tomcat 4.1.

    Eric

  16. #16
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    bizzare !
    ce que tu as ecrit c'est ce que j'avais au depart dans le web.xml; pourtant ça n'a pas marché, pour tomcat j'utilise 5.x

  17. #17
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par santana2006
    ce que tu as ecrit c'est ce que j'avais au depart dans le web.xml; pourtant ça n'a pas marché, pour tomcat j'utilise 5.x
    Parce qu'il existe deux grandes versions de la JSTL : La 1.0 pour les applications J2EE 1.3 et inférieur, et la 1.1 pour les applications J2EE 1.4 : http://adiguba.developpez.com/tutori...jsp/jstl/#L1.3

    Maintenant comme tu ne précisais pas ces informations et que tu n'as pas répondu à mes questions de mon précédent message, c'est difficile de t'aider...

    a++

  18. #18
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    hmm wi tu as raison
    merci bien

  19. #19
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 24
    Par défaut
    SAlut!

    j'ai eu le même pb que toi Santana, du coup (et merci Developpez.com pour ce forum) j'ai fait comme tu as fait, à savoir changé le contenu du tag web-app. Maintenant EL est interprété mais j'ai des erreurs dans mon web.xml.

    De plus, j'ai fait la modif, mais sans comprendre quelqu'un pourraît-il m'expliquer à quoi sert de changer le contenu du tag web-app.

    Merci d'avance, A+.

  20. #20
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Le web-app http://java.sun.com/dtd/web-app_2_3.dtd représente les application J2EE 1.3, et le web-app http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd représentent les applications J2EE 1.4.

    Comme les EL n'ont été intégré à J2EE que dans la version 1.4, si tu utilises un web-app plus ancien les EL sont désactivées pour des raisons de compatibilité (pour ne pas avoir de conflit si tu utilisais le caractère $ dans tes pages)...

    a++

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PDO] Pas de retour lors de l'utilisation d'un return
    Par Estragon007 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/04/2011, 14h03
  2. Réponses: 7
    Dernier message: 11/07/2007, 20h10
  3. [FORM] ne pas envoyer tout lors d'un submit
    Par pmartin8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/12/2005, 20h50
  4. Message d'erreur lors d'utilisation d'un Objet
    Par dirty_boy dans le forum Langage
    Réponses: 3
    Dernier message: 28/10/2005, 16h16
  5. récupérer l' IP du client lors d'utilisation de sockets
    Par zegota dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 27/07/2005, 22h27

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