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] Lecture d'un bean


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 34
    Par défaut [Struts] Lecture d'un bean
    Bonjour,

    Je mets en session un objet qui contient plusieurs attributs dont une collection.
    Je veux ensuite lire chaque item de la collection mais je ne vois pas comment faire.

    [/code]

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut
    SI tu utilise Struts un <logic:iterate> devrait faire l'affaire , sinon utilise la JSTL (en fait moi perso je prefere la JSTL a ce que propose Struts , rien ne t'empeche d'utiliser la JSTL avec Struts)

    http://adiguba.developpez.com/tutoriels/j2ee/jsp/jstl/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 34
    Par défaut
    J'ai essayé de faire un <logic:iterate> mais lorsque je le fais sur mon objet en session, il me dit qu'il ne peut pas faire d'iterations sur l'objet (normal car il est unique).

    Lorsque j'essaie de faire un <logic:iterate> sur l'attribut collection de mon objet, il me dit qu'il ne connait pas le bean nomObjet.nomCollection (normal car seul nomObjet est en session).

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut
    Arrives tu a faire un simple bean:write sur un champs simple de ton Bean?

    ton bean est il le ActionForm definit dans ton struts config ?

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut que ton objet en session possede les méthodes accesseurs pour ses attributs (par exemple pour nomObjet.nomCollection tu dois avoir une méthode getNomCollection()).


    Avec la JSTL (1.0 avec JSP 1.2, ou 1.1 avec les JSP 2.0) et les EL avec <c:forEach/> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <c:forEach var="item" items="${sessionScope['nomObjet'].nomCollection}">
    	<c:out value="${item.property}"/><br/>
    </c:forEach>
    avec
    • nomObjet, le nom de ton objet dans le scope session.
    • nomCollection, le nom de l'attribut qui contient la collection (via la méthode getNomCollection()).
    • property, un attribut d'un item de la collection (via la méthode getProperty()).


    Nota : avec les JSP 2.0 on peut utiliser directement ${item.property} sans le <c:out/>...


    Avec Struts et <logic:iterate/> :
    [code] <logic:iterate id="item" name="nomObjet.nomCollection">
    <bean:write name="item" property="property"/><br/>
    </logic:iterate>



    Enfin pour rappel la JSTL sera intégré dans les spécifications de JEE 5.0

    a++

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 34
    Par défaut
    J'ai mis en session l'objet User (usr) qui contient une collection d'appliAccess.
    L'objet AppliAccess hérite d'un objet AccessCode ayant comme attribut (login et password) et contient également un objet Application (url, desc, code).

    Enuiste, je veux afficher le code le l'application et mettre en lien l'url de l'application avec le login et password.

    Ci-dessous le code (qui ne fonctionne pas !)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <logic:iterate id="appliUser" name="usr.appliAccess">	
      <tr> 
        <td>
          <a href="<bean:write name="appliUser" property="application.url" />?login=<bean:write name="appliUser" property="accessCode.login" />&password=<bean:write name="appliUser" property="accessCode.password" />"><bean:write name="appliUser" property="application.code" /></a> 
        </td>
       </tr>
    </logic:iterate>

  7. #7
    Membre actif
    Inscrit en
    Juillet 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 46
    Par défaut
    si je comprend bien usr et une liste ou une collection d'objet donc fait cela
    <logic:iterate id="appliUser" name="usr" type="cheminComplet.Application">
    <tr>
    <td>
    <a href="<bean:write name="appliUser" property="application.url" />?login=<bean:write name="appliUser" property="accessCode.login" />&password=<bean:write name="appliUser" property="accessCode.password" />"><bean:write name="appliUser" property="application.code" /></a>
    </td>
    </tr>
    </logic:iterate>
    je part du principe que l'objet application est celui contenu dans la collection.

    en fait struts va itérer sur ta liste pour récuperer un objet de type Application, mais tu n'as pas besoin de lui donner le nom du getter

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 34
    Par défaut
    Je suis passé par une étape intermédiaire qui consiste à mettre en session la liste des applications.

    Ensuite, je fais juste un <logic:iterate> sur cette liste

  9. #9
    Membre confirmé
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Par défaut
    C'est quand même pas très propre...

    Tu accède à ton bean monBean, si tu veut accéder une propriété de monBean, maPropriete, qui est un Object de type bean tu peut utiliser la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate id="id_acces" indexId="idx" name="monBean" property="maPropriete" scope="request">
      <bean:write name="id_acces" property="la_chose_a_ecrire"/>
    </logic:iterate>
    Si tu as un bean monBean qui a des Bean en données membres, qui ont eux même des Bean puis des variables normales, tu peut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <nested:write name="monBean" property="ssbean1.ssbean2.chaine">

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

Discussions similaires

  1. [JSP][Struts]Liste déroulante et bean
    Par prokcnet dans le forum Struts 1
    Réponses: 10
    Dernier message: 23/03/2006, 16h16
  2. [Struts] répétition nom de Bean dans 1 JSP
    Par javaSudOuest dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 12/10/2005, 13h04
  3. [DEBUTANT] [STRUTS]Creation d'un bean init
    Par grizzz dans le forum Struts 1
    Réponses: 3
    Dernier message: 25/02/2005, 09h54
  4. [Struts][JSP] Format avec bean:write
    Par cowa dans le forum Servlets/JSP
    Réponses: 20
    Dernier message: 19/05/2004, 18h16
  5. [Struts][Débutant]Pb de Bean
    Par Ho(c)ine. dans le forum Struts 1
    Réponses: 4
    Dernier message: 07/04/2004, 11h18

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