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 :

Itération sur un ArrayList avec ui:repeat


Sujet :

JSF Java

  1. #1
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut Itération sur un ArrayList avec ui:repeat
    Bonjour, j'essaie d'utiliser <ui:repeat afin d'itérer sur une arrayList et de remplir les options d'une liste deroulante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                               <ui:repeat var="category" value="#{myManagedBean.categories}">
                                    <f:selectItem itemValue="#{category.id}" itemLabel="#{category.libelle}" />
                                </ui:repeat>
    cela ne marche pas et dans mon code source j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ui:repeat></ui:repeat><ui:repeat></ui:repeat><select ...
    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Curieux...
    Tu as la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:ui="http://java.sun.com/jsf/facelets"
    dans ta page ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Curieux...
    Tu as la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:ui="http://java.sun.com/jsf/facelets"
    dans ta page ?
    non netbeans m'a mis automatiquement :
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    Ce n'est pas bon ?
    Merci pour ta réponse.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    ça je ne pourrais pas le dire, je n'utilise pas NetBeans, je ne sais pas sur quoi ça "pointe", mais tu peux essayer en mettant l'url standard.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Non ça ne fonctionne pas quelque soit l'url.

  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 : 46
    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
    Tu peux nous donner le fichier jsf complet?

  7. #7
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Tu peux nous donner le fichier jsf complet?
    oui bien sur :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                    xmlns:h="http://xmlns.jcp.org/jsf/html"
                    xmlns:f="http://xmlns.jcp.org/jsf/core"
                    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
        <h1>Ajouter des compétences</h1>
        <p>Formulaire pour ajouter des compétences</p>
        <h:panelGroup id="form_ok" layout="block" class="info" rendered="#{addSkillManagedBean.test==1}">
                <p>Compétence ajoutée !</p>
        </h:panelGroup>
        <h:panelGroup id="form_error" layout="block" class="error" rendered="#{addSkillManagedBean.test==2}">
                <p>Erreur :</p>
                <p><h:outputText value="#{addSkillManagedBean.errorMsg}" /></p>
        </h:panelGroup>
        <h:panelGroup id="form_display" layout="block" rendered="#{addSkillManagedBean.test==0}">
            <h:form id="form">
                <div class="table">
                    <div class="row">
                        <div class="cell">
                            <h:outputLabel for="category">Catégorie :</h:outputLabel>
                        </div>
                        <div class="cell">
                            <h:selectOneMenu id="category" value="#{addSkillManagedBean.categoryId}" required="false" onchange="javascript:window.location.href = 'add-skill.xhtml?idCategory=' + this.value;">
                                <f:selectItem itemValue="0" itemLabel="Choisissez" />
                                <ui:repeat var="category" value="#{addSkillManagedBean.categories}">
                                    <f:selectItem itemValue="#{category.id}" itemLabel="#{category.libelle}" />
                                </ui:repeat>
                                <f:validator validatorId="categoryIdValidator" />
                            </h:selectOneMenu>
                        </div>
                        <div class="cell">
                            <h:message for="category" class="red" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="cell">
                            <h:outputLabel for="new-category">Nouvelle catégorie :</h:outputLabel>
                        </div>
                        <div class="cell">
                            <h:inputText id="new-category" value="#{addSkillManagedBean.newCategory}" required="false" size="20" maxlength="100">
                                <f:validator validatorId="categoryValueValidator" />
                            </h:inputText>
                        </div>
                        <div class="cell">
                            <h:message for="new-category" class="red" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="cell">
                            <h:outputLabel for="skill">Nouvelle compétence :</h:outputLabel>
                        </div>
                        <div class="cell">
                            <h:inputText id="skill" value="#{addSkillManagedBean.skill}" required="true" requiredMessage="Champ vide" size="30" maxlength="100">
                                <f:validator validatorId="newSkillValidator" />
                            </h:inputText>
                        </div>
                        <div class="cell">
                            <h:message for="skill" class="red" />
                        </div>
                    </div>
                    <div class="row">
                        <h:commandButton value="Valider" action="#{addSkillManagedBean.validate()}" />
                    </div>
                </div>
            </h:form>
        </h:panelGroup>
        <p></p>
        <h:panelGroup id="skillsCat" layout="block" rendered="#{not empty addSkillManagedBean.actualSkills}">
            <h2>Compétence liées à cette catégorie</h2>
            <h:dataTable id="table_skills" value="#{addSkillManagedBean.actualSkills}" var="skill">
                <h:column>
                    <h:outputText value="#{skill.libelle}" />
                </h:column>
            </h:dataTable>
        </h:panelGroup>
    </ui:composition>

  8. #8
    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 : 46
    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
    Quel est le conteneur web utilisé? Si je ne me trompe pas, les jcp.org apparaissent avec jsf 2.2 / J2EE7. Ton conteneur support bien ça?

    Sinon, la déclaration correcte est

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:ui="http://java.sun.com/jsf/facelets"
                    xmlns:h="http://java.sun.com/jsf/html"
                    xmlns:f="http://java.sun.com/jsf/core"
                    xmlns:c=http://java.sun.com/jsp/jstl/core">

  9. #9
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    oui j'ai bien jsf 2.2 c'est d'ailleurs pour ça je pense que netbeans génère ce contenu, j'ai le jdk 1.7 et la jvm 1.7.0.17.
    La déclaration que tu propose (tchize_) ne change rien, je pense que le problème doit venir d'ailleurs.

  10. #10
    Membre très actif Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Par défaut
    je sais pas mais essayes de donner différents noms sur category

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <h:selectOneMenu id="cat" value="#{addSkillManagedBean.categoryId}" required="false" onchange="javascript:window.location.href = 'add-skill.xhtml?idCategory=' + this.value;">
                                <f:selectItem itemValue="0" itemLabel="Choisissez" />
                                <ui:repeat var="category" value="#{addSkillManagedBean.categories}">
                                    <f:selectItem itemValue="#{category.id}" itemLabel="#{category.libelle}" />
                                </ui:repeat>
                                <f:validator validatorId="categoryIdValidator" />
                            </h:selectOneMenu>

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Par défaut
    Bonjour,

    Je pense que c'est le fait d'utiliser un ui:repeat dans un h:selectOneMenu qui peut poser problème.

    Il y a d'ailleurs une fonctionnalité qui sert à itérer dans un h:selectOneMenu.

    Je ferais donc plutôt comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:selectOneMenu id="cat" value="#{addSkillManagedBean.categoryId}" required="false" onchange="javascript:window.location.href = 'add-skill.xhtml?idCategory=' + this.value;">
        <f:selectItem itemValue="0" itemLabel="Choisissez" />
        <f:selectItems value="#{addSkillManagedBean.categories}" var="category" itemValue="#{category.id}" itemLabel="#{category.libelle}"/>
        <f:validator validatorId="categoryIdValidator" />
    </h:selectOneMenu>
    Cordialement,

  12. #12
    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 : 46
    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
    De toutes façons, si on retrouve <ui:repeat></ui:repeat><ui:repeat></ui:repeat> dans la page html généré, ça ne peux vouloir dire qu'une chose: Facelet n'a pas reconnue le namespace xml ui et donc l'a transmis au client.

    Tu peux nous donner la page html complète générée?

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Par défaut
    Bonjour tchize_,

    Le problème n'a rien a voir avec les namespace, c'est bien le fait d'utiliser un ui:repeat dans un f:selectOneMenu qui pose problème.

    Voici une explication détaillé du problème sur StackOverflow: ui:repeat doesn't work with f:selectItem

    Cordialement,

  14. #14
    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 : 46
    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
    Citation Envoyé par ellix86 Voir le message
    Bonjour tchize_,

    Le problème n'a rien a voir avec les namespace, c'est bien le fait d'utiliser un ui:repeat dans un f:selectOneMenu qui pose problème.
    Si c'était ça uniquement (et je suis d'accord les ui:repeat n'ont rien à faire là), les ui:repeat seraient ignorés, mais ne seraient pas présent dans le html final. Au mieux ils seraient exécuté à part et ne génèreraient pas d'output. Quand un tag facelet se retrouve dans le html final, c'est que facelet n'a même pas pris la peine de voir ce que c'était.

  15. #15
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ellix86 Voir le message
    Bonjour,

    Je pense que c'est le fait d'utiliser un ui:repeat dans un h:selectOneMenu qui peut poser problème.

    Il y a d'ailleurs une fonctionnalité qui sert à itérer dans un h:selectOneMenu.

    Je ferais donc plutôt comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:selectOneMenu id="cat" value="#{addSkillManagedBean.categoryId}" required="false" onchange="javascript:window.location.href = 'add-skill.xhtml?idCategory=' + this.value;">
        <f:selectItem itemValue="0" itemLabel="Choisissez" />
        <f:selectItems value="#{addSkillManagedBean.categories}" var="category" itemValue="#{category.id}" itemLabel="#{category.libelle}"/>
        <f:validator validatorId="categoryIdValidator" />
    </h:selectOneMenu>
    Cordialement,
    Merci cela fonctionne parfaitement, je suis content j'ai appris un truc.

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

Discussions similaires

  1. Macro avec condition if et itération sur deux fichiers différents
    Par patkunyima dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/03/2015, 16h32
  2. Itération sur select avec grep
    Par bleuerouge dans le forum jQuery
    Réponses: 5
    Dernier message: 11/07/2013, 11h23
  3. Réponses: 4
    Dernier message: 26/07/2011, 11h29
  4. Réponses: 3
    Dernier message: 06/11/2007, 11h18
  5. Warning avec la méthode "clone" sur un "ArrayList"
    Par Pragmateek dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 04/07/2006, 11h28

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