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 :

JSF : appel de méthode


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 408
    Par défaut JSF : appel de méthode
    Bonjour,

    J'utilise les framework primeFaces et JSF dans une appli web, avec netBeans pour ide.

    Coté serveur, j'ai la méthode suivante qui s'exécute à différents moments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        public String selectionnerIdNoteTableau() { System.out.println(getTableauPage()[getIndiceTableauPage()]);
    
            switch (getTableauPage()[getIndiceTableauPage()]) {
                case "administrationPlanCompteM61":
                    return "idNotes :form:idRefPlanCompteM61";
                case "planCompteM61":
                    return "idNotes :form:idColPlanCompteM61";
            }
            return null;
        }
    Utilisation de la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                        <p:commandLink class="bouton bouton1 boutonNote boutonNoteEnregistrer"
                                       actionListener="#{noteManagerBean.enregistrerNote()}"
                                       oncomplete="PF('widgetNoteDialog').hide()"
                                       update="#{noteManagerBean.selectionnerIdNoteTableau()}">
                            <p:outputLabel value="Enregistrer" class="boutonNoteLibelleEnregistrer"/>
                        </p:commandLink>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                            <h:commandButton value="Oui" class="bouton bouton1 boutonMessageErreur">
                                <p:ajax listener="#{noteManagerBean.supprimerNote()}"
                                        oncomplete="PF('widgetNoteDialog').hide(), PF('widgetMessageSupprimerNote').hide()" 
                                        update="#{noteManagerBean.noteSelectionnee.idPk > '0' ? noteManagerBean.selectionnerIdNoteTableau() : null}"/>
                            </h:commandButton>
    Tout fonctionne bien, sauf qu'à l'exécution de mon projet j'ai dans la console netBeans :

    Infos: administrationPlanCompteM61 ... alors que je n'ai encore rien fait, puis

    Infos: administrationPlanCompteM61
    Infos: administrationPlanCompteM61
    Infos: administrationPlanCompteM61 ... à l'utilisation de la méthode

    Est-ce un problème avec JSF ?
    Merci.

  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
    Ce n'est pas un problème de JSF, c'est plutôt un problème dans ta compréhension du mécanisme des composants .

    Quand la page est appelée, il y a une évaluation côté serveur de tout ce qui concerne les balises, du coup, pour ton attribut "update" il y a un appel à selectionnerIdNoteTableau().

    Ce que tu cherches à faire c'est de mettre à jour de manière dynamique un composant en fonction d'un contexte.
    Le mieux serait d'utiliser ton listener pour demander le rafraichissement par code (j'imagine qu'à cet endroit, il dispose des informations pour se déterminer).
    Pour faire ce genre de chose, ça va dépendre de la version de Primefaces utilisée.
    Avec la version 6.2.nn, il faudrait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Pour un seul composant
    PrimeFaces.current().ajax().update("id1");
     
    Pour plusieurs composants
    PrimeFaces.current().ajax().update(Arrays.asList("id1", "id2"));
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 408
    Par défaut
    Comme je suis en PF 6.1.2 et pour mon cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequestContext.getCurrentInstance().update(Arrays.asList(":form:idNotes", ":form:idRefPlanCompteM61"));
    Merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/01/2013, 17h12
  2. Réponses: 3
    Dernier message: 12/04/2011, 17h01
  3. Réponses: 12
    Dernier message: 20/05/2009, 18h38
  4. [Débutant] [JSP] Appel de méthode
    Par Crazyblinkgirl dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 10/09/2004, 11h10
  5. [Débutant] Héritage & appel de méthodes
    Par KooX dans le forum Langage
    Réponses: 4
    Dernier message: 11/05/2004, 23h37

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