Bonjour,
Voila j'ai deux boutons a4j:commandButton et je souhaite utiliser pour l'attribut execute une EL, avec un actionlistener qui va auparavant mettre à jour la propriété (propriété concernée par l'EL) au niveau du bean. En fait cela fonctionne très bien lorsque je lance la page et que je commence par l'un ou l'autre des boutons.
Mais le pb intervient lorsque je passe d'un bouton à l'autre, en effet lorsque je passe à un autre bouton je me suis rendu compte que lors du premier clic j'avais encore au niveau de l'execute les infos du précédent bouton.
Voici mes boutons :
Au niveau de l'execute, "titres" est juste une chaine de caracteres (renseignant les IDS).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <a4j:commandButton id="ajouter" value="Ajouter" actionListener="#{administrationController.executeListener}" action="#{administrationController.ajouter}" execute="#{administrationController.titres}" /> <a4j:commandButton id="supprimer" value="Supprimer" actionListener="#{administrationController.executeListener}" action="#{administrationController.supprimer}" execute="#{administrationController.titres}" />
Mon managed bean :
(j'arrive à différencier mes 2 boutons et à faire un setTitres)
J'ai bien essaye de faire un setTitres=null à la fin de des methodes appelées avec action (ajouter et supprimer), mais cela ne change rien.
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 ... public void executeListener(ActionEvent event){ String component = event.getComponent().getId(); String attribut = (String) event.getComponent().getAttributes().get("execute"); System.out.println("======"); System.out.println("LISTENER EXECUTE=> "+component); System.out.println("======="); System.out.println("attribut : "+attribut); if (component.equals("ajouter")) setTitres("inputAbrege inputTitre"); else if (component.equals("supprimer")) setTitres("selectTitre"); else System.out.println("pas dans le if"); attribut = (String) event.getComponent().getAttributes().get("execute"); System.out.println("attribut2 : "+attribut+" et titre : "+getTitre()); } ...
Si qqn à une idée merci par avance.
Couse1
Partager