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 :

aide pour selectitems débutant


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut aide pour selectitems débutant
    Bonjour,

    voilà je vous explique j'aimerais compléter une listbox avec la colonne "type" de ma table "fite". J'arrive à me débrouiller un peu mais là je suis complétement pommé.

    Si vous avez un peu de temps à m'accorder merci

    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
     
    <h:selectOneListbox id="type" value="#{fite.fite.type}" size="1" required="true" requiredMessage="The type field is required." >
          <f:selectItems value="#{Fite.FiteItemsAvailableSelectMany}"/>
    </h:selectOneListbox>
     
     public SelectItem[] getFiteItemsAvailableSelectMany() {
            return JsfUtil.getSelectItems(jpaController.findFiteEntities(), false);
        }
     
    public static SelectItem[] getSelectItems(List<?> entities, boolean selectOne) {
            int size = selectOne ? entities.size() + 1 : entities.size();
            SelectItem[] items = new SelectItem[size];
            int i = 0;
            if (selectOne) {
                items[0] = new SelectItem("", "---");
                i++;
            }
            for (Object x : entities) {
                items[i++] = new SelectItem(x, x.toString());
            }
            return items;
     
    public List<Fite> findFiteEntities() {
            return findFiteEntities(true, -1, -1);
        }
     
     private List<Fite> findFiteEntities(boolean all, int maxResults, int firstResult) {
            EntityManager em = getEntityManager();
            try {
                Query q = em.createQuery("select object(o) from Fite as o");
                if (!all) {
                    q.setMaxResults(maxResults);
                    q.setFirstResult(firstResult);
                }
                return q.getResultList();
            } finally {
                em.close();
            }
        }
    Voilà voilà je ne sais pas trop si c'est ok quand j'essaie avec tomcat j'ai ce message
    Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(type).


    Merci de votre aide !!

  2. #2
    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
    commence déjà par ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:selectItems value="#{Fite.fiteItemsAvailableSelectMany}"/>
    Les noms de propriété commencent en général par une minuscule.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    Toujours pareil

    merci de la rapidité de votre aide

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    D'après les méthodes que tu indiques ici, la seule façon correcte d'écrire serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <f:selectItems value="#{fiteController.fiteItemsAvailableSelectMany}"/>
    A condition que la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public SelectItem[] getFiteItemsAvailableSelectMany() {
            return JsfUtil.getSelectItems(jpaController.findFiteEntities(), false);
        }
    fasse partie d'un controlleur JSF connu dans le contexte JSF sous le nom fiteController.
    Je n'ai jamais utilisé de tableaux de SelectItems, toujours des List<SelectItem>. Je ne sais pas si ça fonctionne.

    Je ne suis pas sur que tu puisses utiliser une méthode statique. (Si quelqu'un le sait, je suis preneur de l'info).

    Assure-toi également que le type mappé sur la value de ton <h:selectOneListbox/> soit du même type que les values que tu places dans tes SelectItem.

  5. #5
    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
    Ça peut être une liste ou un tableau, ce n'est donc pas l'erreur. Et comme la méthode n'est pas statique, ce n'est donc pas l'erreur non plus (et non, on ne peux pas référencer directement des méthodes statiques en JSF). Je vois encore les erreurs suivantes:


    tu as mis #{Fite alors qu'au dessus tu a écrit #{fite, il faut prendre la bonne orthographe.

    Aurais-tu oublié de faire l'import de la librairie f?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
    Aurais-tu dans la page un autre tag selectOne qui serait celui en erreur? (Et donc on chercherais au mauvais endroit)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    Merci pour toutes vos réponses !

    tu as mis #{Fite alors qu'au dessus tu a écrit #{fite, il faut prendre la bonne orthographe.
    Le soucis venait de la majuscule

    Enfin vous allez dire que je vous embête en fait maintenant la listbox est remplis des valeur bdd.fite[id=3] bdd.fite[id=4].

    Je me suis dit qu'en utilisant les méthodes précédentes, j'allais récupérer le champs "type" de ma bdd et non bdd.fite[id=3].

    Enfin si vous n'avez pas le temps je chercherai en tâtonnant moi même.

    merci

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    c'est bon j'ai trouvé !

    j'ai changé ça :

    Query q = em.createQuery("select object(o) from Fite as o");

    en ça :

    Query q = em.createQuery("select type from Fite");

  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
    n'oublie pas le bouton

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    Merci de votre aide !

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

Discussions similaires

  1. [PostgreSQL] [POSTGRES] Aide pour un débutant
    Par Tiolebucheron dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/11/2008, 08h45
  2. Aide pour un débutant
    Par Flow_75 dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/07/2008, 18h34
  3. Besoin d'aide pour un débutant en procédure stockée
    Par el gringo dans le forum Débuter
    Réponses: 2
    Dernier message: 06/04/2006, 11h17
  4. De l'aide pour un débutant
    Par Abelkims dans le forum Débuter
    Réponses: 21
    Dernier message: 02/09/2005, 11h11
  5. De l'aide pour un débutant
    Par Abelkims dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/08/2005, 14h33

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