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 2 Java Discussion :

Récupérer le premier element d'hashSet [Struts 2] [Hibernate]


Sujet :

Struts 2 Java

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 97
    Par défaut Récupérer le premier element d'hashSet [Struts 2] [Hibernate]
    Bonjour, je travail avec struts 2, Hibernate 3.5 et JBOSS et je tiens à souligné que je suis débutant en Java.

    Dans ma base de donnée une boutique est composé de produit. Le produit est composé d'image.

    Dans l'action boutique je récupères tous les produit à l'aide d'un fonction getAll

    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
     
    Hibernate
     
    public List<Produit> getAllByBoutiqueId(int boutiqueId)
        {
            Session session = ConnectionFactory.getInstance().getSession();
            try {
     
                Transaction tx = session.beginTransaction();
                List<Produit> produitList = session.createQuery("select p from Produit p left join fetch p.photoses where p.boutique.idBoutique= :id group by p")
                        .setParameter("id", boutiqueId)
                        .list() ;
                for (Produit produit : produitList) {
                    session.refresh(produit);
                }
                tx.commit();
                return produitList;
            } catch (Exception e) {
                System.out.println("Erreur lors de la récupération des catégories : " + e.getMessage());
                return null;
            }
        }
    Dans mon action j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private List<Produit> listeProduit = new ArrayList<Produit>();
            listeProduit=ProduitManager.getInstance().getAllByBoutiqueId(commercant.getBoutique().getIdBoutique());
    Dans la vue j'essaye de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <s:iterator value="listeProduit" status="ligne">
                <s:if test="#ligne.odd"><tr class="ligne1"></s:if>
                <s:if test="#ligne.even"><tr class="ligne2"></s:if>
                    <td><img width="100" height="100" src="${photoses[0].urlPhoto}" alt="image"/></td>
                    <td><s:property value="prodLibelle" /></td>
    </s:iterator>
    J'ai un exception généré au niveau de {photoses[0].urlPhoto}

    Je veux récupérer la première image qui est stockée (ou affiché l'ensembe des images).
    Pour ce faire je dois convertir photoses (HashSet) en iterator ou tableau et récupérer le premier élément. Mais j'ignore comment travailler sur ma photoses à l'interieur du jsp.

    Je vous remercie d'avance de votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 131
    Par défaut
    Bonjour,

    tu peux poster ton exception ?

    Mais déjà, à vue de nez comme ça, j'aurais pas mis l'url directement comme ça mais plutôt avec une balise <s:url value="tonurl" />

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 97
    Par défaut
    L'exception générer est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    javax.el.PropertyNotFoundException: Property '0' not found on type org.hibernate.collection.PersistentSet
    	javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
    	javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
    	javax.el.BeanELResolver.property(BeanELResolver.java:279)
    	javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
    	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
    	org.apache.el.parser.AstValue.getValue(AstValue.java:97)

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir,

    Utilises la methode toArray du HashSet pour avoir le tableau afin que tu puisses utiliser l'indice 0 s'il contient au moins un objet.

    A+.

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 97
    Par défaut
    J'ai essayé de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ${photoses.toArray().getAt(0)}
    Mais toujours rien :s

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Re,

    Un array ne possède pas une methode getAt(), utilise directement "[0]" et n'oublie pas de faire le cast de l'objet pour récupérer l'attribut urlPhoto.

    Euh, tu là récupérer où ton HashSet photoses?

    A+.

  7. #7
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 97
    Par défaut
    Justement je sais pas comment coder en java avec struts 2 dans la page jsp :s
    Je suis vraiment un newbie
    J'ai chercher un peu j'ai appris l'existence de balise c, mais je ne sais pas l'utiliser ...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Par défaut
    je me casse les dents sur la mm chose alors ça m'intéresserait de connaître ton avancement sur ce point.

  9. #9
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 97
    Par défaut
    J'ai fais un peu à la barbare.
    J'ai récupérer tous les éléments avec un iterator et un if sur le premier que j'affiche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <s:iterator value="photoses" status="statut">
        <s:if test="#statut.index==0">
           <img src="<s:property value="urlPhoto"/>" alt="img" width="100" height="100" />
        </s:if>
    </s:iterator>
    Ce n'est pas très propre mais j'ai rien trouvé d'autre. Si tu trouve une autre solution fais moi part.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Par défaut
    je ne trouve aucun solution à ce que je veux faire alors je m'en remet a vous.

    J'ai un arraylist que je parcours, pour chaque objet il y a un attribut qui est un hashset. Je veux récupérer l'attribut de ce hashset dans ma jsp. Simple comme bonjour non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <s:iterator status="stat" value="listProducts">
    	<s:property value="%{id}" />
    	<s:property value="%{name}" />
    	<s:property value="%{price}" />
    	<s:iterator status="st" value="pictures">
    		<s:property value="listProducts[%{#stat.index}].pictures[%{#st.index}].uri" />
    	</s:iterator>
    </s:iterator>
    voilà ma tentative désespérée. Si quelqu'un à quelque-chose à me proposer.

    (bravo la documentation struts .... )

  11. #11
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 97
    Par défaut
    Tu veux parcourir ton hashSet ou récupérer le 1 élément?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Par défaut
    oui ou tous les éléments, je veux réussir à afficher l'uri de l'image . Mais là j'galère trop, jpense que je peux pas j'ai pas trouvé un seul exemple sur internet.

  13. #13
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 97
    Par défaut
    Je reprends ton exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <s:iterator status="stat" value="listProducts">
    	<s:property value="id" />
    	<s:property value="name" />
    	<s:property value="price" />
    	<s:iterator status="st" value="pictures">
    		<s:property value="uri" />
    	</s:iterator>
    </s:iterator>
    L'iterator est juste une boucle

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Par défaut
    [EDIT] On dirait que tu m'as devancé
    ok j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <s:iterator status="stat" value="listProducts">
    	<s:property value="%{id}" />
    	<s:property value="%{name}" />
    	<s:property value="%{price}" />
    	<s:iterator status="st" value="pictures">
    		<s:property value="uri" />
    	</s:iterator>
    c'était pas plus compliqué que ça en fait. Après pour récupérer uniquement la première image, on peut faire comme tu as fait. Je vois pas trop d'autres moyens de faire à part faire une arraylist qui contiendrait que la première valeur du hashset. (peut être si tu peux faire un break; de l'itérateur ce serait cool mm si c'est un peu barbare).
    Tiens moi au courant.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Par défaut
    a priori ça, ça devrait faire ce que tu veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <s:iterator status="st" begin="0" end="0" value="pictures">
    <s:property value="uri" />
    </s:iterator>
    Chez moi ça marchote plus ou moins des fois l'image change comme-même je ne sais pas trop pourquoi.

  16. #16
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 97
    Par défaut
    Cool merci
    je vais tester ça

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Par défaut
    pour info begin et end sont valables qu'à partir de la version 2.1.7 de struts :

    http://struts.apache.org/2.x/docs/iterator.html

    HF, tien moi au courant si ça fonctionne de ton côté.
    bn

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

Discussions similaires

  1. Récupérer tous les elements d'un DIV
    Par arnolem dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 18/07/2006, 15h13
  2. Réponses: 2
    Dernier message: 15/05/2006, 10h27
  3. Comment mettre le premier element DbLookUpCombo
    Par CheGueVerra dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2004, 20h45
  4. Récupérer le premier enregistrement d'un attribut
    Par Tapioca dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 05/08/2004, 09h56
  5. [langage] supprimer le premier élément d'un tableau
    Par Kinethe dans le forum Langage
    Réponses: 2
    Dernier message: 20/07/2004, 15h39

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