Salut
Voilà j'ai créé un menu dynamique dans un backing bean et je voudrais que mes menuitem execute une action lorsque je clique dessus, comment faire svp?
Merci
Version imprimable
Salut
Voilà j'ai créé un menu dynamique dans un backing bean et je voudrais que mes menuitem execute une action lorsque je clique dessus, comment faire svp?
Merci
tu peux leur ajouter l'attribut action.
Oui mais je crée le menu (dynamique) dans un backing bean pas dans la jsp, dans la jsp je fais juste un binding. donc comment rajouter l'action dans un backing bean? merci
svp qu'est ce que je doit mettre comme paramètre de setAction? le code? l'appel de procédure? parce que j'ai vu dans la javadoc que le paramètre est de type MethodBinding. merci
j'ai essayé ça :
tq affectMasqueTrois est l'action à exécuter,Code:
1
2 sousmenu.setAction("#{EBbean.affectMasqueTrois}");
mais il ne l'accepte pas, il accepte seulement le type "MethodBinding".
merci
ouii tu dois utiliser le composant UI pas en chaine dur..
en JSF 1.2, il faut utiliser MethodExpression, voilà la javadoc
tu peux faire quelque chose dans le genre:
Code:
1
2 context.getApplication().getExpressionFactory().createMethodExpression(ElContext, xx, yy, zz);
J'ai essayé votre technique cç n'est pas accepté, alors j'ai changé par un methode binding de la même façon, c'est accepté mais ça ne donne rien comme résultat, voici le code que j'ai rajouté:
merciCode:
1
2
3
4 ELContext ElContext; MethodBinding mb = FacesContext.getCurrentInstance().getApplication().createMethodBinding("# {EBbean.affectMasqueTrois}",null); sousmenu.setAction(mb);
quelle est ta version JSF?
petite rectif du code (mais qui ne donne toujours rien):
Code:
1
2
3
4
5
6 ELContext elcontext = FacesContext.getCurrentInstance().getELContext();; MethodExpression me = FacesContext.getCurrentInstance().getApplication() .getExpressionFactory().createMethodExpression(elcontext, "#{EBbean.affectMasqueTrois}", String.class,new Class[]{}); sousmenu.setActionExpression(me);
et j'ai Sun JSF 1.2
merci
le code semble correcte, qu'est ce qui ne marche pas? tu as des erreurs?
non je n'ai pas d'erreur, c'est juste que quand je clique sur le sous menu le traitement associé à l'expression EL ne s'exécute pas (aucun des output que j'ai fait dans la méthode ne s'affiche à la console)
merci
le code de la méthode est exécuté?
oui la méthode ne s'exécute pas
tu as entouré le menu d'un h:form?