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