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 :

[Bonnes pratiques JSF] liste déroulante


Sujet :

JSF Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut [Bonnes pratiques JSF] liste déroulante
    Bonjour à tous,

    Ce post ne traite pas d'un problème technique mais plutôt de bonnes pratiques de programmation JSF, et, plus généralement MVC.

    Structure du projet :
    JSP -- Controller -- EJB

    Le controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class MonControleur{
       BeanPere beanPere;
    }
    Les 2 beans entité simplifiés dans la couche métier (EJB) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class BeanPere {
       BeanFils beanFils;
    }
     
    public class BeanFils {
    }
    Question : Quelle est la meilleure manière de lier une liste déroulante à l'attribut beanFils?

    J'ai identifié deux possibilités :
    - La première consiste à binder la liste déroulante directement à l'attribut beanFils de beanPere.
    - La seconde consiste à binder la liste déroulante à un objet intermédiaire beanFils dans le controller. Dans ce cas, on rattachera cet objet à l'attribut beanPere à la validation du formulaire. On aura donc un controller du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class MonControleur{
       BeanPere beanPere;
       BeanFils beanFils;
     
       public void validation() {
          beanPere.setBeanFils(beanFils);
       }
    }
    J'ai essayé de simplifier au maximum.

    Merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    N'hésitez pas à me demander des éclaircissements si nécessaire

  3. #3
    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
    ça dépend du contexte, si la liste change beaucoup ou pas.. tu peux utiliser un bean de valeurs:

    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
    Public class beanVO {
     
    private List  list;
     
    //setter
     
    //getter
     
    public List getList() {
     
    if(list==null) {
    //  calculer la liste de la base list = ...
    }
    return list;
    }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    ça dépend du contexte, si la liste change beaucoup ou pas
    Dans quel cas utiliser l'un ou l'autre alors?

    tu peux utiliser un bean de valeurs
    Un EJB entité est un bean de valeur non? Ce qui reviendrait à choisir la première possibilité (binder la liste déroulante directement à l'attribut beanFils de beanPere)?

    Comment t'y prends tu en générale?

    Merci,

  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
    non un bean de valeurs, ce n'est pas un entité beans, il doit correspondre à peu près à l'image de ta page, les valeurs viennent des bean entités ou dao, c'est pour ne pas utiliser directement les dao dans la page,

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    Donc la meilleure méthode consiste à utiliser à Bean de valeurs?

    Si j'ai bien compris, mon managed bean aura un attribut de type beanVO et toutes les valeurs de la page seront représentées par cet attribut.

  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
    c'est une façon de faire, il n'y a pas de meilleure façon ..ça dépend de ton architecture.

    le bean VO est lui même un managedBean.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    Merci pour tes réponses Sniper37.

    Un petit détail : VO c'est pour Value Object? C'est un pattern connu ou c'est ton appellation?

  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
    Non c'est le design pattern Value Object, tu trouvera des articles sur le net.

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

Discussions similaires

  1. [Débutant] VB.net WPF : bonne pratique ? (Observablecollection List(of ) data binding)
    Par Gloubi99 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 01/06/2015, 13h26
  2. [Bonnes pratiques JSF] managed bean
    Par scorplayer dans le forum JSF
    Réponses: 3
    Dernier message: 10/05/2010, 17h43
  3. [Débutant]Bonnes Pratiques JSF ?
    Par El_touristo dans le forum JSF
    Réponses: 1
    Dernier message: 20/04/2009, 00h48
  4. [MySQL] Selectionner bonne donnée dans liste déroulante
    Par rastacouaire dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/02/2009, 12h21
  5. Réponses: 1
    Dernier message: 20/06/2006, 17h39

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