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 :

Application Web XHTML+JSF : Méthode qui s'invite !


Sujet :

JSF Java

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 : 402
    Points : 153
    Points
    153
    Par défaut Application Web XHTML+JSF : Méthode qui s'invite !
    Bonjour,

    Je galère depuis des jours sur un problème que je ne comprends pas.

    Dans une page XHTML, j'ai 3 boutons (en fait des h:commandlink) :

    1 bouton A qui exécute une méthode A
    1 bouton B qui exécute aussi la méthode A
    1 bouton C qui exécute une méthode C

    Lorsque je clic sur A, B ou C, la méthode exécutée est bien A, A ou C : jusque là je comprends !

    Mais en y regardant de plus près, je m'aperçois que les clics sur A ou B exécutent aussi la méthode C !!

    Je pense que j'ai dû passer à coté de quelque chose d'important ...

    Y a-t-il une explication rationnelle à ce problème ??

    MERCI POUR VOTRE AIDE

    Bouton A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div style="position:relative; left:-25px; top:-115px; z-index:2">
         <p:commandLink action="#{catalogManagerBean.imageTheme('precedent')}" update="panelImages">
         <p:graphicImage id="imagePrecedente" value="images/gauche.png" style="width:26px"/>
         <p:tooltip for="imagePrecedente" value="Thème précédent" position="left" styleClass="bulle"/>
         </p:commandLink>
    </div>
    Bouton B :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div style="position:relative; left:535px; top:-145px; z-index:2">
         <p:commandLink action="#{catalogManagerBean.imageTheme('suivant')}" update="panelImages">
         <p:graphicImage id="imageSuivante" value="images/droite.png" style="width:26px"/>
         <p:tooltip for="imageSuivante" value="Thème suivant" position="right" styleClass="bulle"/>
         </p:commandLink>
    </div>
    Bouton C :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div align="center" style="position:relative; height:20px; margin-top:-28px">
        <h:commandLink id="choisirTheme" onclick="#{catalogManagerBean.choixTheme()}">
        <img src="images/epingle.png" align="absmiddle" style="width:20px"/>
        <h:outputText value="Choisir #{catalogManagerBean.themeImageAfficheeNom}"/>
        </h:commandLink>
    </div>
    Méthode A :

    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
     
    public void imageTheme(String direction) {
     
            if (direction.equals("suivant")) {
                setThemeImageNumero(getThemeImageNumero() + 1);
                if (getThemeImageNumero() > themeListeImages.size() - 1) {
                    setThemeImageNumero(0);
                }
            } else {
                setThemeImageNumero(getThemeImageNumero() - 1);
                if (getThemeImageNumero() < 0) {
                    setThemeImageNumero(themeListeImages.size() - 1);
                }
            }
     
            themeImageAffichee = themeListeImages.get(getThemeImageNumero());
    }
    Méthode C :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        public void choixTheme() {
     
            setThemePrecedent(getThemeCourant());
     
            setThemeCourant(getThemeImageAffichee());
     
            setThemePanelConfirmerModification(true);
     
            System.out.println("Precedent : " + themePrecedent + " Courant : " + themeCourant);
        }
    Le system.out.println de cette dernière méthode montre que themePrecedent et themeCourant sont modifiées même si je clic sur "Précédent" ou "Suivant" !!!

    MERCI de m'aider à résoudre ce problème car si je n'ai pas de solution je devrais abandonner ce code !!!!

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    c'est action pour exécuter du code coté serveur lors du click. onclick ca définis seulement le bout de javascript a exécuter. Ici tu demande à JSF de remplir l'attribut "onclick" html avec la valeur retournée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #{catalogManagerBean.choixTheme()}
    Autrement dit, cette méthode est appelée à chaque rendu de page pour pouvoir dessiner ton bouton. Que tu clique ou pas dessus, quand tu recharge la page, la méthode est appelée.

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 : 402
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. HTML / Une méthode qui s'invite !
    Par denisduval75 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/01/2017, 21h20
  2. exemple d'une application web (jsp,jsf) utilise jbpm
    Par steve7 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 04/09/2009, 11h01
  3. Réponses: 4
    Dernier message: 02/08/2008, 18h56
  4. [Méthodes]Utiliser UML ou MERISE pour une application Web ?
    Par naimoooovich dans le forum Méthodes
    Réponses: 5
    Dernier message: 28/05/2007, 11h53

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