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

Servlets/JSP Java Discussion :

HashSet => toArray() => Problème


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut HashSet => toArray() => Problème
    Bonjour à tous !
    Je rencontre un problème dans une jsp !
    Je voudrais convertir un Set en array afin de pouvoir affiché le 1er élement via [0]
    voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${article.images.toArray()[0].url}
    article.images revoie un Set

    et voilà ce que me revoie la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.apache.jasper.JasperException: /WEB-INF/jsp/article-list.jsp(15,16) The function toArray must be used with a prefix when a default namespace is not specified
    alors je suppose qu'il faut que j'ajoute qqch mais quoi ?

    Merci d'avance !

  2. #2
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par garthos Voir le message
    et voilà ce que me revoie la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.apache.jasper.JasperException: /WEB-INF/jsp/article-list.jsp(15,16) The function toArray must be used with a prefix when a default namespace is not specified
    alors je suppose qu'il faut que j'ajoute qqch mais quoi ?
    Je pense si tu code ta lige sur 2 lignes ça ira, d'abord tu récupére ton Set en faisant un cast explicite et aprés tu peux appliquer la methode toArray()

  3. #3
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    Je ne comprends pas ce que tu veux dire ?
    j'utilise les Expressions Language, il me semblait que c'était possible de faire ça non ? et j'aimerais ne pas mettre de code scriplet dans mes jsp et n'avoir que des taglibs.

  4. #4
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par garthos Voir le message
    Je ne comprends pas ce que tu veux dire ?
    j'utilise les Expressions Language, il me semblait que c'était possible de faire ça non ? et j'aimerais ne pas mettre de code scriplet dans mes jsp et n'avoir que des taglibs.
    Oui c'est vrai, il vaut mieux eviter de code java ds la page jsp...
    A ta place je cree une fct dans ton bean qui permet de te rortourner ta premiere image ou tte les images selon ton besoin, pour retourner la premiere image par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public TonBeanImage getFirstImage() {
    içi tu construit ton array et tu retounr la premiere image
    retourn premiereImage;
    }
    et de coup tu met ds ta page jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${article.firstImageurl.url}
    Aprés ça depond de ta conception et de ce que tu fais avec les images...

  5. #5
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    ça va pas être possible je dirais en fait ....

    Car mon bean "article" c'est un bean de domaine lié a JPA/Hibernate et les images sont dans un HashSet que est dans article c'est une relation @OneToMany:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @OneToMany(mappedBy = "article")
    	public Set<ArticlePicture> getImages() {
    		return this.images;
    	}
    En fait j'ai bien penser à mettre des List à la place des Set mais il semble que les List pose problème lors de la génération du script DDL dans certain cas et notamment dans le cas des ManyToMany ou la clé composé sur la table d'association disparait => ( voir ce post )
    Et comme j'ai d'autre table d'image lié à d'autre objet mais que j'ai l'intention de tous les réunir dans une même table "Picture" je vais donc avoir besoin d'utilisé des JoinTable pour avoir par exemple "Article" -> "Picture" , "Ville" -> "Picture" , etc ....

    Une solution serait de créer une librairie de Tag et de créer un Tag qui me fait ça mais bon si il y a une autre solution de préférence propre, ça serait super bien !

    Merci d'avance

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Sauf à avoir des extensions EL propriétaires qui le supportent, EL ne permet pas d'appeler n'importe quelles méthodes, seuls les getter/setters sont accesibles.

    Par contre, Set étant une collection, il me semble que cette notation suffirait pour avoir le premier élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${article.images[0].url}

Discussions similaires

  1. Problème avec containsAll de HashSet
    Par javast dans le forum Général Java
    Réponses: 8
    Dernier message: 21/11/2011, 14h54
  2. Réponses: 0
    Dernier message: 11/02/2010, 17h49
  3. probléme avec HashSet
    Par chebmo1986 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 28/03/2009, 17h47
  4. Problème balise iterate avec la classe HashSet
    Par kokumbo dans le forum Struts 1
    Réponses: 8
    Dernier message: 07/11/2007, 15h43
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

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