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 :

[Richfaces] Data Iteration questions générales


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut [Richfaces] Data Iteration questions générales
    Salut à tous,

    serait-il possible pour ceux qui ont déja maitriser l'iteration avec des datatable datalist et autres joyaux de richfaces (ou tout simplement avec h:datatable basique de jsf) de m'indiquer ce qu'il faut mettre dans les classes java, à travers cet exemple simple tiré du site officiel http://livedemo.exadel.com/richfaces...sf?c=dataGrid:

    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
     
    <rich:dataGrid value="#{dataTableScrollerBean.allCars}" var="car" columns="4" elements="12">
     
     
                    <h:panelGrid columns="2">
     
                        <h:outputText value="Price:" styleClass="label"></h:outputText>
     
                        <h:outputText value="#{car.price}" />
     
                        <h:outputText value="Mileage:" styleClass="label"></h:outputText>
     
                        <h:outputText value="#{car.mileage}" />
     
                        <h:outputText value="VIN:" styleClass="label"></h:outputText>
     
                        <h:outputText value="#{car.vin}" />
     
                        <h:outputText value="Stock:" styleClass="label"></h:outputText>
     
                        <h:outputText value="#{car.stock}" />
     
                    </h:panelGrid>
     
     
            </rich:dataGrid>
    - alors pour #{dataTableScrollerBean.allCars} dataTableScrollerBean est un bean déclaré ok, mais allCars est de quel type ? quels sont les types que peut prendre cette propriété (List ? Collection? String[]....etc)

    -pour var="car" car represente un élément de la liste, mais comment jsf reconnait-il les attributs que l'on peut appeler sur l'objet car, par exemple si j'ai déclaré comme ceci dans le bean dataTableScrollerBean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private List<Car> allCars;
      getAllCars(){...}
      setAllCars(List<Car> list){...}
    ...etc avec le bon code qui convient
    comment par le simple fait d'ecrire #{car.price} jsf reconnait que l'objet "car" est de type "Car" et qu'il possede différents attributs définis dans la classe Car.java
    la classe Car doit-elle etre un bean obligatoirement ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Class Car{
     
       int price;
       int mileage;
       String vin;
       String stock;
     
    les getters et les setters adéquats...
    }
    merci de m'éclairer sur ces points

  2. #2
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 53
    Par défaut
    -allcars c'est une liste qui contient des objet de type car
    -jsf ne reconnait que les bean declarer dans faces-config.xml
    -l'objet en session qui va y afficher {#}
    .... si se n'ai pas resolu expliquer un peut

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut
    -allcars c'est une liste qui contient des objet de type car
    -jsf ne reconnait que les bean declarer dans faces-config.xml
    -l'objet en session qui va y afficher {#}
    .... si se n'ai pas resolu expliquer un peut
    peut-tu expliquer un peu plus ?

    si qq1 a un bon exemple sur les data table richfaces ça serait sympa de détailler un peu les sources (faces-config.xml les classes java et la page jsf svp) merci

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Oui, les itérateurs prennent comme paramètre une collection ou un tableau.

    Et oui, les objets de ta collection doivent impérativement respecter les conventions des JavaBeans.
    En fait, cela dépend de l'implémentation JSF, mais en général, c'est pas reflection que l'on accède aux champs déclarés dans l'EL.
    par exemple, #{car.price} sera traduite par une recherche de getPrice dans l'objet réferencé par car.

    Bonne chance.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut
    salut djo.mos et merci pour la réponse
    quand tu dis que les objets de la collection doivent impérativement respecter les conventions des JavaBeans oké mais faut-il déclarer obligatoirement la classe Car.java comme un bean managé dans faces-config.xml ??

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Non, pas du tout. L'implémentation JSF fera l'introspection au runtime pour accèder aux champs de car.
    Seul un managed bean de départ doit être déclaré. Si on référence ensuite une de ses propriétés (même avec plusieurs niveaux de profondeurs, du genre #{bean.champ.autre.encore.un.autre}), JSF traversera le graphe d'objets intermédiaires sans avoir à les déclarer comme managed bean, sauf pour le premier (nommé ici bean).

    Bonne chance.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut
    oké merci, au fait qui connais un bon composant de type datatable avec des colonnes possedant la possiblité de triées les tuples, un genre de widget comme pour JMaki ExtGrid pour ceux qui connaissent ou dans Richfaces ou autres frameworks.

    merci d'avance

  8. #8
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    La majorité des jeux de composants supportent le tri d'une dataTable selon les colonnes (plus ou moins facilement) comme Tomahawk, Trinidad, RichFaces, etc.
    Le plus simple (et que je connais) est celui de Tomahawk qui avec un simple attribut sort="true" te fait la chose, mais bon, j'ai comme l'impression que MyFaces et Tomahawk ne sont plus super-actifs pour le moment et ils restent cantonnés à JSF 1.1. De plus, Tomahawk (et MyFaces) a quelques autres défauts (ne génère pas du HTML valide, de nombreux bugs, etc.)

    Bonne chance.

Discussions similaires

  1. [LDAP] Questions générales sur LDAP
    Par guiguisi dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 25/05/2005, 10h05
  2. VUES : questions générales
    Par Equus dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/10/2004, 10h37
  3. question générale sur les conteneurs
    Par tut dans le forum C++
    Réponses: 6
    Dernier message: 01/09/2004, 10h11
  4. Question générale sur les affectations ?
    Par Clemaster dans le forum C++
    Réponses: 5
    Dernier message: 09/08/2004, 17h03
  5. [SGBD]Questions générales.
    Par Mobaladje dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 21/05/2004, 19h19

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