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

JSF Java Discussion :

appeler un élément d'une collection à partir d'un bean dans mon code JSF2


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut appeler un élément d'une collection à partir d'un bean dans mon code JSF2
    Bonjour,

    Je viens de lire dans la rubrique "Les propriétés indexées (indexed properties)" du tutoriel Java de jmd dans les cours pour apprendre Java : http://java.developpez.com/cours/

    Mon souci est lié à ce bout de code (dans le java bean):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private float[] notes = new float[5];
     
    public float getNotes (int i ) {
     
    return notes[i];
     
    }
    J'aimerai savoir comment appeler/utiliser notes[i] dans mon code JSF ?

    Merci & bonne journée

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Tu peux le transformer en map, tu peux y acceder:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{bean.map['key']}" />
    JSF se base sur les expressions EL, tu peux consulter le cours des EL dansl a partie tutoriels java.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    Tu peux le transformer en map, tu peux y acceder:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{bean.map['key']}" />
    JSF se base sur les expressions EL, tu peux consulter le cours des EL dansl a partie tutoriels java.
    très bien problème résolu
    C'est pareil pour les tableaux/listes

    merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut
    re-Bonjour,

    Mon problème n'est pas encore résolu !

    en fait j'utilise une boucle for (javaScript dans mon code JSF) et donc j'ai une variable i que je n'arrive pas à l’insérer comme index à ma collection . ie :
    ça marche bien pour ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    for (i=0;i<size ;i++){
    var X =  "#{monBean.list[1]}";
    ..
    }
    par contre je n'arrive pas à faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    for (i=0;i<size ;i++){
    var X =  "#{monBean.list[i]}";
    ..
    }

    J'ai essayé : "#{monBean.list["+ i + "]}";
    mais ça marche pas

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    tu ne peux pas mélanger du javascript et des EL/java.

    Si tu explique ce que tu veux faire, il doit surement exister une solution meilleure que du javascript.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    tu ne peux pas mélanger du javascript et des EL/java.

    Si tu explique ce que tu veux faire, il doit surement exister une solution meilleure que du javascript.
    j'utilise JS pour google maps..

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    tu ne peux pas utiliser Richfaces?

    y'a un composant gmap..

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    tu ne peux pas utiliser Richfaces?

    y'a un composant gmap..
    Bonjour,

    J'ai déjà utilisé 2 composants : celui du primefaces et un autre qui s'appelle gmaps4jsf. le problème avec le premier qu'il y a plusieurs Bugs et pour le 2eme il ne me donne pas la main pour accéder (ajouter, modifier ..) au code native de google maps ..

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Ok tu peux trouver sur le forum des discussions qui expliquent comment récupérer des attribut java avec le javascript. Pour les modifier je ne pense pas que ce soit possible..

    Si quelqu'un qui connait bien le sujet passe par là..notamment romaintaz, il t'apportera plus de précisions.

    Pour trouver les discussions sur le sujet..

  10. #10
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    Si quelqu'un qui connait bien le sujet passe par là..notamment romaintaz, il t'apportera plus de précisions.
    Qui ça ?

    Bon, effectivement, c'est pas trop possible de faire ça comme ça. Moi je partirais effectivement sur du composant gmap de RF, mais en Javascript, on peut faire autrement :

    Tu stockes dans un inputHidden ton tableau, sous forme de chaine de caractères. Dans le code Java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public String getAllNotes() {
            StringBuffer sb = new StringBuffer();
            boolean first = true;
            for (float f : notes) {
                if (first) {
                    first = false;
                } else {
                    sb.append(";");
                }
                sb.append(f);
            }
            return  sb.toString();
    }
    En gros, cette méthode va te retourner "float1;float2;float3;...;floatN". Bien sûr, tu peux utiliser un autre caractère que ";" pour séparer tes valeurs... Tu places ceci dans ton inputHidden :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputHidden id="listeNotes" value="#{monBean.allNotes}"/>
    Maintenant, dans ton code Javascript, tu splittes ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var listeNotesAsArray = document.getElementById("idForm:listeNotes").split(";");
    Et voilà ! Tu obtiens un tableau de float.

    Magique !

  11. #11
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    A la limite, si tu utilises Prototype, tu utilises le séparateur espace " " au lieu de ";" et tu écrits dans ton code Javascript ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var monTableau = $w($F("idForm:listeNotes"));
    C'est pas beau

    Plus d'info sur cette ligne ici et .

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    je savais que tu aurais la réponse....

    Sinon le composant de Richfaces est basé, je pense sur jquery, tu peux utiliser directement le composant de jquery si tu cherche plus de flexibilité.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Qui ça ?

    Bon, effectivement, c'est pas trop possible de faire ça comme ça. Moi je partirais effectivement sur du composant gmap de RF, mais en Javascript, on peut faire autrement :

    Tu stockes dans un inputHidden ton tableau, sous forme de chaine de caractères. Dans le code Java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public String getAllNotes() {
            StringBuffer sb = new StringBuffer();
            boolean first = true;
            for (float f : notes) {
                if (first) {
                    first = false;
                } else {
                    sb.append(";");
                }
                sb.append(f);
            }
            return  sb.toString();
    }
    En gros, cette méthode va te retourner "float1;float2;float3;...;floatN". Bien sûr, tu peux utiliser un autre caractère que ";" pour séparer tes valeurs... Tu places ceci dans ton inputHidden :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputHidden id="listeNotes" value="#{monBean.allNotes}"/>
    Maintenant, dans ton code Javascript, tu splittes ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var listeNotesAsArray = document.getElementById("idForm:listeNotes").split(";");
    Et voilà ! Tu obtiens un tableau de float.

    Magique !


    j'ai directement utilisé "#{monBean.allNotes}" à la place de getElementById

    Merci à vous deux

  14. #14
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Effectivement, le passage par un inputHidden est superflu. Ca peut être utile cela dit quand on traffique des trucs en Ajax, et qu'on souhaite mettre à jour cette valeur...

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

Discussions similaires

  1. Probleme ADO adapter une requete sql pour l'utiliser dans mon code vb6
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/04/2009, 15h53
  2. appel des elements d'une classe à partir d'une autre
    Par oceane751 dans le forum Langage
    Réponses: 4
    Dernier message: 02/01/2008, 21h52
  3. mettre à jour un élément d'une frame à partir d'une autre
    Par Nulenprogra dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/10/2007, 22h16
  4. Réponses: 0
    Dernier message: 31/08/2007, 20h38
  5. [Reflect] connaître la classe des éléments d'une collection
    Par El Saigneur dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 12/06/2007, 12h04

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