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

Struts 1 Java Discussion :

variable logic:iterate et java scriptlet


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut variable logic:iterate et java scriptlet
    Bonjour,

    Voilà j'ai une variable de type MAP dans un logic iterate et je veux l'utiliser dasn un scriptlet mais eclipse me dit que la variable (absent) n'est pas résolue.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <logic:iterate id="absent" name ="AbsenceCodesMap">
        <html:option value="<%=((Map.Entry)absent).getKey().toString()%>"><%=((Map.Entry)absent).getValue().toString()%>
        </html:option>
    </logic:iterate>
    Pourquoi ne l'a voit-il pas ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par nighma
    Bonjour,

    Voilà j'ai une variable de type MAP dans un logic iterate et je veux l'utiliser dasn un scriptlet mais eclipse me dit que la variable (absent) n'est pas résolue.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <logic:iterate id="absent" name ="AbsenceCodesMap">
        <html:option value="<%=((Map.Entry)absent).getKey().toString()%>"><%=((Map.Entry)absent).getValue().toString()%>
        </html:option>
    </logic:iterate>
    Pourquoi ne l'a voit-il pas ?

    Merci

    Pourquoi tu utilise pas une List au lieu d'une map?? Sinon je pense que tu peux pas iterer directement sur une map, par contre tu peux iterer sur les cles ou les valeurs de la map ( si je me trompe pas biensure ).

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut
    On peut utiliser un Map pour l'iteration (voir http://struts.apache.org/1.0.2/strut...c.html#iterate)

    Le problème se situe juste au niveau de la déclaration de la variable, je pense.
    Le logic:iterate défini une variable absent mais apparemment je ne sais pas l'utiliser tel quel dans le code java (scriptlet).

  4. #4
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par nighma
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <logic:iterate id="absent" name ="AbsenceCodesMap">
        <html:option value="<%=((Map.Entry)absent).getKey().toString()%>"><%=((Map.Entry)absent).getValue().toString()%>
        </html:option>
    </logic:iterate>
    Essay ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <logic:iterate id="absent" name ="AbsenceCodesMap">
        <html:option value="<bean:write name="absent" property="key"/> ><bean:write name="absent" property="value"/>   </html:option>
    </logic:iterate>

    Br.

  5. #5
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par nighma
    Bonjour,

    Voilà j'ai une variable de type MAP dans un logic iterate et je veux l'utiliser dasn un scriptlet mais eclipse me dit que la variable (absent) n'est pas résolue.
    SI ça marhce pas tu peux faire :

    Je pense quye je vois pourquoi, ajoute type = "java.util.Map.Entry" dans ta tag <logic:iterate id="..." name="..." type= "java.util.Map.Entry">

    et tu fait un import au debut de ta page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="java.util.Map.Entry"%>

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut
    La technique du bean:write semble fonctionner mais comment peut-on faire quand on veut atteindre la propriété dun' objet se trouvant dans le Map.

    J'ai en fait dans ce Map des beans qui ont des propriétés et des fonctions et j'amerais atteindre celles-ci.

  7. #7
    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
    Essaie avec les EL.

    En J2EE 1.4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <logic:iterate id="item" name="map">
       <html:option value="${item.key}">
          ${item.value.propriete1}
       </html:option>
    </logic:iterate>
    En J2EE 1.3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <%@ taglib uri="/WEB-INF/struts-html-el.tld" prefix="html-el" %>
     
    <logic:iterate id="item" name="map">
       <html-el:option value="${item.key}">
          <bean:write name="item" property="value.propriete1"/>
       </html-el:option>
    </logic:iterate>

Discussions similaires

  1. utilisation d'une scriptlet dans un logic:iterate
    Par Invité dans le forum Struts 1
    Réponses: 3
    Dernier message: 15/04/2009, 10h05
  2. Réponses: 2
    Dernier message: 23/11/2006, 21h23
  3. [EJB2.1 Entity] [BMP] [Struts] Problème avec <logic:iterate>
    Par romain3395 dans le forum Java EE
    Réponses: 2
    Dernier message: 07/06/2004, 10h12
  4. [struts][iterate] problème logic:iterate avec un Vector
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 9
    Dernier message: 31/03/2004, 18h05
  5. [Struts] logic:iterate avec un Vector
    Par laurentb dans le forum Struts 1
    Réponses: 18
    Dernier message: 03/03/2004, 14h42

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