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 :

taglibs imbriqués : ordre d'exécution


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut taglibs imbriqués : ordre d'exécution
    Bonjour,

    Je suis débutant en programmation web java et je butte sur une chose toute bête.
    Je souhaiterais exécuter la chose suivante dans une page JSP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <i18n:message key="<c:out value="${field}"/>" />
    Le problème c'est que le tag "i18n" semble être interprété avant le "c", savez vous s'il est possible de régler l'ordre d'exécution des taglibs? Pouvez-vous me dire si utiliser ce genre de "pratiques" est recommandé?

    Merci bien!
    Cédric

  2. #2
    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,


    Tu ne peux pas imbriqué des taglibs de la manière suivante...

    D'après la doc, le paramètre key du tag <i18n:message> accepte des expressions au runtime.

    Donc tu as deux solutions qui dépendent de ta version de J2EE/JSP :



    a++

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    J'obtiens une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Erreur de servlet générée:
    pageField cannot be resolved
    En utilisant la première solution que tu proposes
    La seconde ne semble pas marcher.

    En faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <c:set var="toto" value="test"/>
    <%= toto  %>
    J'ai aussi une erreur

  4. #4
    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 cedricmenou
    J'obtiens une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Erreur de servlet générée:
    pageField cannot be resolved
    En utilisant la première solution que tu proposes
    Autant pour moi : <c:set> ne doit pas définir de variable locale à la page...

    Il faut alors que tu y accèdes manuellement via le pageContext :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <i18n:message key="<%=pageContext.getAttribute("field")%>" />
    Citation Envoyé par cedricmenou
    La seconde ne semble pas marcher.
    Cette solution fonctionne avec une application J2EE 1.4

    a++

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Bonjour,

    çà fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <c:set var="pageField" value="${field}"/>
    <i18n:message key="<%= "prefixe." + pageContext.getAttribute("pageField") %>"/>
    Merci pour ton aide!

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    ReBonjour,

    En fait j'avais pas utilisé la seconde solution parceque je n'arrivait pas à faire fonctionner les EL.

    J'y suis parvenu en modifiant la déclaration du fichier XML et en modifiant la déclaration du taglib dans la page JSP...

    Les infos se trouvent sur cette page:
    http://forum.java.sun.com/thread.jsp...89240&tstart=0

    A+,
    Cédric

Discussions similaires

  1. L'ordre d'exécution des threads
    Par Dosseh dans le forum Modules
    Réponses: 1
    Dernier message: 05/07/2007, 20h24
  2. [URL Rewriting] ordre d'exécution des règles
    Par safisafi dans le forum Apache
    Réponses: 1
    Dernier message: 21/11/2006, 18h52
  3. ordre d'exécution des événements onblur et onfocus
    Par letycaf dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/05/2006, 15h30
  4. Ordre d'exécution de la requête
    Par raf_gug dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/04/2006, 10h30
  5. Ordre d'exécution dans une jointure externe
    Par Pero dans le forum Langage SQL
    Réponses: 17
    Dernier message: 20/09/2005, 12h22

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