Est-il possible d'avoir plusieurs actionListeners sur un bouton de commande?Icefaces: ActionListeners multiples pour le bouton de commande
Si ce n'est pas le cas?
Merci pour votre aide!
Est-il possible d'avoir plusieurs actionListeners sur un bouton de commande?Icefaces: ActionListeners multiples pour le bouton de commande
Si ce n'est pas le cas?
Merci pour votre aide!
Non, vous ne pouvez ajouter deux méthodes de rappel côté serveur:
actionListener
etaction
.<ice:commandButton action="#{bean.navigateTo}" actionListener="#{bean.doSomething}"/>
actionListener
doit pointer vers une méthode publique qui renvoie void
et prend un ActionEvent comme argument. Il est généralement utilisé pour toutes les tâches qui ne sont liées à aucune logique de navigation et a l'avantage de vous fournir l'ancienne et la nouvelle valeur (= modifiée) du contrôle. Cela a un sens particulier dans les contrôles d'entrée comme les cases à cocher.
action
doit pointer vers une méthode publique qui renvoie un String
sans prendre d'arguments. La méthode fera tout ce qui est nécessaire pour la navigation - par exemple, une validation supplémentaire (si elle n'a pas été traitée par un validateur JSF de base). Le résultat doit correspondre aux règles de navigation de faces-config.xml
.
Cela devrait vous donner assez de possibilités pour gérer plusieurs tâches (ce que je suppose est la raison pour laquelle vous avez plusieurs actionListener) dans votre logique de serveur.
En outre, si vous ne devez effectuer que quelques tâches côté client, vous pouvez tirer parti de plusieurs propriétés JavaScript *.
Référence: ICEfaces Custom Components Taglib