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 :

Utilisation excessive de <logic:iterate> ?


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut Utilisation excessive de <logic:iterate> ?
    bonjour,

    Je démarre la programmation avec Struts. Je me pose une question sur l'usage que je fais de <logic:iterate>.
    J'ai par exemple une liste en session composée de beans A. Dans ma Jsp, j'utilise iterate pour afficher ces objets, en l'occurence une liste de formations.
    Mon utilisateur sélectionne l'une de ces formations, en cliquant sur un lien généré pour chacune d'entre elles. Je place l'id de la formation en paramètre du lien.

    L'utilisateur arrive alors sur une deuxième JSP lui permettant de regler des détails sur cette formation. Je refais une utilisation de iterate avec un test pour retrouver la formation sélectionnée précéédemment et afficher les détails correspondant.

    D'où ma question : n'est-ce pas un usage excessif et peu souhaitable de l'iterate dans ce deuxième cas ? Car j'ai l'impression de passer mon temps à parcourir ma liste située en session (je le refais une troisième fois dans mon action !!!).
    Quels autres moyens sont possibles ? Peut-on par exemple générer un bean contenant que la formation choisie au moment du clic ?

    Merci d'avance.

  2. #2
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    re,

    Personne n'a de solution ou d'idée ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Par défaut
    Déjà pour l'affichage, tu devrais jeter un coup d'oeil au displaytag qui permet de mettre en forme des données "presque" automatiquement :site officiel

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    Cet ensemble de tags a l'air bien sympa. Je pense d'ailleurs l'utiliser dans d'autres circonstances. Mais dans le cas présent, il ne permet pas de régler mon problème.

    Reformulé, le problème est le suivant : comment récupérer un objet particulier contenu dans un ArrayList placé en session que l'on choisit sur une première page (via un lien) pour en afficher ensuite sur uen seconde page les attributs, et ce SANS refaire un iterate sur l'arryList.

  5. #5
    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
    Tu devrais jeter un oeil à cette discussion où il est expliqué comment passer dans un tag html:link l'ensemble des propriétés d'un bean à une Action via une Map.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    Je viens d'aller voir. Mais le problème, c'est que je trouve lourd de passer cela en URL. Surtout, je tiens vraiment à récupérer un OBJET sur la deuxième jsp. L'idée, ce serait par exemple de faire un iterate avec une indexation de chaque objet (1, 2, 3....), et de pouvoir faire un liste.get(i) sur la deuxieme page, mais le tout sans java, pour rester "propre". Mais est-ce possible ?

  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
    Il y a une solution pour afficher les propriétés de l'objet sélecté après avoir passé l'id en paramètre via le lien en utilisant la jstl.

    Donc, dans la jsp :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // définition de la variable id dans le scope page
    // elle contient la valeur passée dans le paramètre id
    <c:set var="id" value="${param['id']}"/>
    // définition de la variable formation contenant l'objet sélecté de la liste
    <c:set var="formation" value="${listeFormations[id]}"/>
    // affichage de la propriété libelle de la formation
    <c:out value="${formation.libelle}"/>

  8. #8
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    Ok merci beaucoup.
    J'ai entre temps choisi de stocker mes objet dans un hashmap avec l'id dans la BDD comme clef, et l'objet lui-même comme valeur. J'accède ainsi très facilement dans ma deuxième jsp à l'objet désiré. Mais la solution utilisant JSTL est très séduisante ;-). Je vais peut être changer de stratégie du coup.

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

Discussions similaires

  1. Problème d'utilisation de la balise <logic:iterate>
    Par guicecal dans le forum Général Java
    Réponses: 1
    Dernier message: 02/07/2009, 16h55
  2. Réponses: 0
    Dernier message: 11/07/2008, 12h30
  3. [logic:iterate] problème d'utilisation
    Par snetechen dans le forum Struts 1
    Réponses: 4
    Dernier message: 01/02/2007, 15h41
  4. [logic:iterate] probléme d'utilisation
    Par nikoo_27 dans le forum Struts 1
    Réponses: 3
    Dernier message: 27/11/2006, 15h23
  5. Réponses: 1
    Dernier message: 27/09/2006, 16h21

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