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 :

[JSTL] nom de variable "dynamique"


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Points : 21
    Points
    21
    Par défaut [JSTL] nom de variable "dynamique"
    Bonjour,

    je voudrais créer des variables avec un nom changeant selon l'itération d'une boucle forEach.

    Imaginons une boucle forEach qui va de 1 à 6, j'aimerais qu'elle créé des variables nommés day1 day2 day3,...

    Je procède comme ceci, cela ne fait pas d'erreur mais mes variables n'ont aucune valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <c:forEach var="indexDay" begin="1" end="6">
         <c:set var="day<c:out value=\"${indexDay}\"/>">
          <c:out value="${indexDay}"/></c:set>
    </c:forEach>
    Dans le set var, j'échappe les " du c:out, et grâce à ça, aucune erreur de syntaxe n'est détectée.

    Merci d'avance de vos réponses

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <c:forEach var="indexDay" begin="1" end="6">
         <c:set var="day" var="day${indexDay}"/>
         <c:out value="${day}"/>
    </c:forEach>
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    C'est une erreur de frappe le fait qu'il y ait 2x var:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:set var="day" var="day${indexDay}"/>
    J'ai essayé aussi ca mais ca marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:set var="day" value="day${indexDay}"/>

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 25
    Points
    25
    Par défaut
    la derniere solution semble correct tu as quoi comme erreur ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bin en fait je fais ca plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <c:set var="day${indexDay}" value="day"/>
    <c:out value="${day1}"/>
    puisqu'en fait je veux créér des variables genre day1 day2 day3...donc ici elle contiendront toutes la valeur "day".

    Mais j'ai pas d'erreur, rien ne s'affiche c'est tout. On dirait qu'il trouve pas la variable day1. Est-ce que mon set var créérait une variable d'un autre nom ? bizarre quand même

  6. #6
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par gmonta31
    C'est une erreur de frappe le fait qu'il y ait 2x var:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:set var="day" var="day${indexDay}"/>
    J'ai essayé aussi ca mais ca marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:set var="day" value="day${indexDay}"/>
    Désolée, c'était bien une erreur de frappe.
    C'est bien ceci que je pensais avoir écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <c:set var="day" value="day${indexDay}"/>
    Mais en fait, je n'avais pas bien lu ton post et c'est le nom des variables que tu veux indicer et non leurs valeurs.
    Mais quelles valeurs comptes-tu leur affecter ?
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    peu importe la valeur, il faut que mes variables créées soient day1 day2 day3...

    donc ca pourrait être un truc genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:set var="day${indexDay}"><c:out value="${varTest}"/></c:set>

Discussions similaires

  1. Nom de variable en dynamique
    Par nonodup2 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 02/09/2008, 11h35
  2. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44
  3. [xsl]simuler le mecanisme OO de "liaison dynamique"
    Par philemon_siclone dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 19/12/2003, 11h34

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