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 !!!!