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 :

Binding?, action vs actionListener?


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Par défaut Binding?, action vs actionListener?
    1) Dans quels cas est-il conseillé d'utilisé un binding, sachant que
    cela entraine une complexification certaine
    (référence et utilisation d' objets graphiques UIxxx dans le bean)

    2) Pour les boutons, on dispose des attributs action et actionListener,
    qui se ressemblent.
    Est-il plus logique d'utiliser action, pour la gestion de la navigation ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    1) Dans quels cas est-il conseillé d'utilisé un binding, sachant que
    cela entraine une complexification certaine
    (référence et utilisation d' objets graphiques UIxxx dans le bean)
    Quand tu en as besoin . Non en faites c'est difficile à dire. On peut dans la plupart des cas se passer des bindings. Par exemple pour savoir si les checkbox sont coché, on peut utiliser un binding ou juste récupérer cela dans value. On à trés souvent 2 possibilités

    Les cas les plus intéressants sont les getRowData des datatable (mais la encore on pourrais s'en passer).

    Sinon tu t'en sers si tu as besoin de rajouter dynamiquement des elements jsf dans ton element bindé.


    2) Pour les boutons, on dispose des attributs action et actionListener,
    qui se ressemblent.
    Est-il plus logique d'utiliser action, pour la gestion de la navigation ?
    Pour la navigation utilise action. Tu utiliseras le listener si tu as besoin d'avoir des infos sur le bouton qui à été clické

  3. #3
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Par défaut
    d'apres vous je conclut que :
    l'utilisation de binding cela implique : le raflechissement des composant se fait automatique lors d'un tel evenement.
    pas besoin de creer et de programmer des enements pour faire la raflechissement.

    est il vrai?

    sinon quelle interret de les utilisé.

    merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'utilisation de binding cela implique : le raflechissement des composant se fait automatique lors d'un tel evenement.
    pas besoin de creer et de programmer des enements pour faire la raflechissement.
    En faites non, je pense que je me suis mal exprimé en disant "dynamiquement".

    En faites le binding d'un composant c'est la possibilité de manipuler le composant directement dans le code java.

    Exemple : Si l'utilisateur clique sur un bouton je veux changer le styleClass de ce bouton. Si l'on à un binding sur ce composant on peut le manipuler dans l'action lié au boutton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void actionDuboutton(){
     
    System.out.println ("On à cliquer sur le bouton");
     
    button.setStyle("Mon nouveau style"); //button est une variable de class
     
    ....
    }
    Dans le meme ordre d'idée, on peut aussi ajouter un nouveau composant à un panelGrid par exemple :
    panelGrid.getChildren.add (new UIOutputText).


    On à les meme possibilités que si on etait entrain d'ecrire le composant dans la page jsp. Et meme plus. Certains composant ont des fonctions assez pratique (datatable.getRowData permet de recuperer l'objet qui constitue la ligne qur laquelle l'utilisateur à cliqué).

  5. #5
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Par défaut
    merci,

    je presque compris le principe. mais mes class managed bean ne comporte pas des variables ou attribues pour les composants graphiques de JSF car j'ai cru au debut que je ne vais pas utiliser ces composant dans mon code mais lorsque j'ai besoin d'utiliser les evenements je me suis rendu compte qu'il faut declarer ces composant pour pouvoir associer les evenements . ou faut t'il les utilise dans le fichier xml de chaque page

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lorsque j'ai besoin d'utiliser les evenements je me suis rendu compte qu'il faut declarer ces composant pour pouvoir associer les evenements
    Les actionListener ? je ne vois pas en quoi tu dois déclarer les composants.

    tu déclare les composants dans ton code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:inputText binding=#{Monbean.inputText} ....>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class MonBean{
     
    private UIInput inputText;
     
    ...
     
    //Faire le getter et setter
    }
    Ensuite tu peux utiliser dans ta class la variable inputText et donc manipuler ton composant.

    Si tu fait un actionListener

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class MonBean(){
     
    public void monActionListener (ActionEvent e){
     
    UIInputText inputText = (UIInputText) e.getCompoenent();
     
    }
    Donc dans ce cas pas besoin de déclarer tes composants

  7. #7
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Par défaut
    ok

    merci a bientot

Discussions similaires

  1. Action performed actionlistener
    Par chlock62 dans le forum NetBeans
    Réponses: 1
    Dernier message: 15/11/2009, 14h07
  2. Binding qui ne fonctionne plus dès qu'on effectue une action
    Par annalady dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 03/07/2008, 10h24
  3. Actions et ActionListeners d'un bouton
    Par saubin dans le forum JSF
    Réponses: 10
    Dernier message: 01/02/2008, 10h06
  4. action APRES chargement complet ...
    Par PinGuy dans le forum Delphi
    Réponses: 7
    Dernier message: 06/07/2006, 17h16
  5. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20

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