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 :

[Struts]<logic:iterate> parcours de plusieurs tableaux


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Par défaut [Struts]<logic:iterate> parcours de plusieurs tableaux
    Salut,

    je voudrai savoir si il est possible de parcourir plusieurs tableaux avec un <logic:iterate>.

    ex: j'ai un tableau avec mes dates de début et un autre avec mes dates de fin (sachant que dateDebut[i] est liée à dateFin[i]).

    est-ce que je peux faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <logic:iterate ...>
    	<tr>
    		<td>
    			<bean:write name="dateDebut"/>
    			<bean:write name="dateFin"/>
    		</td>
    	</tr>
    </logic:iterate>
    merci pour votre aide[/code]

  2. #2
    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
    de mémoire je ne pense pas, par contre les tags EL conviennent bien a ce genre de problème

  3. #3
    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
    en fait je précise, avec les Struts-EL ca marche mais avec des tags "html" et non "bean":

    En effet le tag "bean:write" n'a pas été redéfini pour les EL, je te mets tout de même le code avec le html:el pour que tu vois a quoi ça ressemble

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       <logic-el:iterate name="monForm" property="maProp" id="minId"
                         indexId="cpt">
           <html-el:text name="monForm"
                      property="maProp[${cpt}]" />
       </logic-el:iterate>

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Par défaut
    Citation Envoyé par SEMPERE Benjamin
    de mémoire je ne pense pas, par contre les tags EL conviennent bien a ce genre de problème
    c'est quoi les tags EL ?

  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
    en combinant les struts tags avec les tags jstl ça doit passer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       <logic-el:iterate name="monForm" property="maProp" id="minId" 
                         indexId="cpt"> 
           <c:out value="${monForm.maProp[${cpt}]}" /> 
       </logic-el:iterate>
    enfin au niveau des jstl je te recommende le tuto de AdiGuba
    http://adiguba.developpez.com/tutori.../jstl/#L-c:out

  6. #6
    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
    Citation Envoyé par asx9
    Citation Envoyé par SEMPERE Benjamin
    de mémoire je ne pense pas, par contre les tags EL conviennent bien a ce genre de problème
    c'est quoi les tags EL ?
    Les expression language donne un coup d'oeil au lien de mon post précédent et ici pour les extensions de struts
    http://struts.apache.org/faqs/struts-el.html


  7. #7
    Membre Expert
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Par défaut
    Ne serait il pas possible de passer tout simplement tes elements dans le meme tableau ?
    Un liste contenant les deux tableaux par exemple... ou construire un bean avec tes deux elements et d'en faire une liste...(plus propre et plus conforme aux models, mais plus lourd)

  8. #8
    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
    Citation Envoyé par viena
    Ne serait il pas possible de passer tout simplement tes elements dans le meme tableau ?
    Un liste contenant les deux tableaux par exemple... ou construire un bean avec tes deux elements et d'en faire une liste...(plus propre et plus conforme aux models, mais plus lourd)
    oui en effet habituellement c'est ce qu'il faut faire en plus c'est plus propre

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Par défaut
    Citation Envoyé par viena
    Ne serait il pas possible de passer tout simplement tes elements dans le meme tableau ?
    Un liste contenant les deux tableaux par exemple... ou construire un bean avec tes deux elements et d'en faire une liste...(plus propre et plus conforme aux models, mais plus lourd)
    En fait j'ai 5 vecteurs...
    je pense que je vais mettre un peu de code java dans ma JSP. J'aurai voulu éviter mais c'est pas très grave

    Est-ce qu'on peut faire un <bean:write> d'un élément d'un vecteur ?

  10. #10
    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
    Citation Envoyé par asx9
    Citation Envoyé par viena
    Ne serait il pas possible de passer tout simplement tes elements dans le meme tableau ?
    Un liste contenant les deux tableaux par exemple... ou construire un bean avec tes deux elements et d'en faire une liste...(plus propre et plus conforme aux models, mais plus lourd)
    En fait j'ai 5 vecteurs...
    je pense que je vais mettre un peu de code java dans ma JSP. J'aurai voulu éviter mais c'est pas très grave

    merci pour votre aide
    Personnellement je pense que tu aurais tout a gagner a structurer tes données dans un bean (pour affichage)

  11. #11
    Membre Expert
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Par défaut
    tu peux faire un bean:write d'un element d'un vector...
    Mais je suis Benjamin et je confirme que se balader avec 5 vectors, c'est pas normal... Il y a un probleme dans ta communication entre couches.

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Par défaut
    Citation Envoyé par viena
    tu peux faire un bean:write d'un element d'un vector...
    ça m'intéresse mais j'ai du mal à trouver des exemples ds les docs.
    tu peux m'expliquer comment ça marche ?

  13. #13
    Membre Expert
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Par défaut
    C'est tres simple.
    Tu crées une classe bean. Un bean c'est une classe qui en gros contient des attributs et les getters et setters les concernant (methodes d'acces).
    En voila un assez complet par exemple.
    Tu mets les getters et setters que tu veux, tu peux ainsi mettre en forme tes info et les preparer a l'affichage.
    Un bean:write ne va pas aller chercher directement de la valeur de l'attribut qui lui ai demandé mais va utiliser le getter.
    Donc par exemple
    <bean:write id=lib/> va chercher une methode getLib. donc si on veut par exemple afficher un code ligne special, on peut faire :
    <bean:write id=codeLibLigne /> qui appelera la methode getCodeLibLigne

    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
    39
    40
    41
    42
    43
    44
    public class OtLigne implements Serializable {
      public OtLigne() {  }
      public OtLigne(String code) {
        this.codeLigne=code;
      }
      public OtLigne(String code,String lib) {
        this.codeLigne=code;
        this.libLgLigne=lib;
      }
     
      private String codeLigne;
      private String libLgLigne;
      private List lesVoies = null;
     
      public String getCodeLigne()  {
        return codeLigne;
      }
      public String getLibLgLigne()  {
        return libLgLigne;
      }
      public String getCodeLibLigne() {
        if(codeLigne.equals("TOUS"))
          return codeLigne;
        else
          return codeLigne + " - " + libLgLigne;
      }
      public List getLesVoies() {
        return lesVoies;
      }
      public void setCodeLigne(String codeLigne)  {
        this.codeLigne = codeLigne;
      }
      public void setLibLgLigne(String libLgLigne)  {
        this.libLgLigne = libLgLigne;
      }
      public void setLesVoies(List voies) {
        lesVoies.addAll(voies);
      }
      public void addVoie(OtTrVoie voie) {
        if(lesVoies==null)
          lesVoies=new ArrayList();
        lesVoies.add(voie);
      }
    }
    Cette classe est comme toutes les classes java (comme String). tu l'implemantes, tu crées tes objets et apres tu peux tres bien les ajouter à un vector ou une arrayList (comme tu ajouterais des String ou des Integer).
    Voila, c'est tout simple comme je le disais.

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

Discussions similaires

  1. [ STRUTS ] [ LOGIC:ITERATE ] tableau dans un formulaire
    Par LoulouFifi dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/06/2004, 16h19
  2. [Struts][logic:iterate] Probleme avec String
    Par julienOriano dans le forum Struts 1
    Réponses: 7
    Dernier message: 15/06/2004, 09h39
  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