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 :

logic iterate en cascade


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut logic iterate en cascade
    Bonjour à tous,

    J'envoie à ma JSP une liste que j'appelle pour l'exemple specialiteList.
    C'est une liste de bean qu'on appelera pour l'exemple specialiteBean.
    specialiteBean possède tout un tas de propriétés dont une qu'on appelera substituteList qui n'est autre qu'une liste de specialiteBean.

    Le décor est planté:

    Dans ma jsp je commence donc par une itération sur specialiteList.
    J'affiche des données puis je teste si substituteList n'est pas null.
    Si c'est le cas alors je boucle sur substituteList, j'affiche ces mêmes données puis je dois à nouveau testé si substituteList n'est pas null pour encore et encore bouclé.

    Techniquement ca donne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <logic:iterate id="specialite" name="specialiteList">
      //affichage de proerties
      //test si substituteList existe
      <logic:iterate id="specialiteSub" name="specialite" property="substituteList">
        //affichage de properties
        //test encore si substitutList existe
        <logic:iterate id="specialiteSubSub" name="specialiteSub" property="substituteList">
             //et la ca peut durer longtemps
        </logic:iterate>
      </logic:iterate>
    </logic:iterate>
    Ma question est donc la suivante : (déjà j'espère que vous avez bien compris)
    Dans ca cas, il est possible presque que je boucle à l'infini, mais je ne peut évidemment pas mettre un nombre un infini de ligne de code (ma pauvre JSP), surtout je ne sais pas combien d'itération je dois attendre.

    Donc y a t'il une solution dans ce cas la?

  2. #2
    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
    Alors, il doit y avoir une solution en créant deux jsp et en incluant la deuxième dans chacune d'elle.

    Par exemple, specialite.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <logic:present name="specialiteList">
       <logic:iterate name="specialiteList" id="specialite">
    	<bean:write name="specialite" property="proprieteSpecialite"/>
    	<bean:define name="specialite" id="specialite" toScope="request"/>
    	<jsp:include page="substitute.jsp"/>
       </logic:iterate>
    </logic:present>
    et substitute.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <logic:present name="specialite" property="substituteList">
       <logic:iterate name="specialite" property="substituteList" id="substitute">
    	<bean:write name="substitute" property="proprieteSubstitute"/>
    	<bean:define name="substitute" id="specialite" toScope="request"/>
    	<jsp:include page="substitute.jsp"/>
       </logic:iterate>
    </logic:present>
    A tester et si ça fonctionne, voir ce que ça donne côté performance.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 76
    Par défaut
    je crois que dans le sustitue.jsp tu dois inclure le specialiste.jsp. non ?

  4. #4
    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
    Citation Envoyé par fangriz Voir le message
    je crois que dans le sustitue.jsp tu dois inclure le specialiste.jsp. non ?
    Non, pas du tout, puisque c'est sur la liste substituteList que l'on doit boucler x fois.

  5. #5
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Bonjour,
    Tout d'abord merci de vous êtes penché sur mon problème.

    Je dois mettre en stand by ce problème pour me pencher sur un autre pour la journée, donc je ne testerai pas votre solution avant la fin de journée ou demain.

    Je vais étudier votre solution pour voir si je peut la mettre en œuvre dans ce projet.
    Je vous tiens bien évidemment informé des avancées.
    Merci!

  6. #6
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Re,
    J'ai pu essayer votre solution malheureusement ca ne fonctionne pas.
    le <bean:define> avant de passer à la seconde jsp semble pourtant être pris en compte (pas d'erreur "cannot find bean in any scope") mais rien ne s'affiche.
    Mais si je retire le <logic:present> en début de la seconde jsp, boom j'ai un stackoverflow!!

    Je pense que je vais faire un pas en arrière pour mieux avancer.

    Un vieux sage m'a dit un jour "Si la gestion de l'affichage devient trop compliqué, il faut retoucher le code en amont" (pour avoir un bean d'affichage le plus simple possible)

    Je pense qu'il faut que je l'écoute aujourd'hui!
    Si vous avez tout de même une idée de ce côté la je pourrai l'essayer tout de même sinon je passerai le post en résolu!!

    Merci à vous!!

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

Discussions similaires

  1. Imbriquer des logic:iterate
    Par lalou33 dans le forum Struts 1
    Réponses: 4
    Dernier message: 16/06/2004, 10h31
  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