Question

Est-il possible d'avoir plusieurs ActionListeners sur un bouton de commande?

Dans le cas contraire est-il un moyen de contourner cela?

Merci pour votre aide!

Était-ce utile?

La solution

Non, vous ne pouvez ajouter deux méthodes de rappel côté serveur:

  • actionListener et
  • action.

<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 des tâches qui ne sont pas liées à une logique de navigation et a l'avantage, pour vous fournir l'ancien et le nouveau (= changé) valeur du contrôle. Cela est logique particulier dans les contrôles d'entrée comme des cases à cocher.

action doit pointer vers une méthode publique qui renvoie un String sans prendre aucun argument. 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 certains JSF validateur de base). Le résultat doit correspondre aux règles de navigation de faces-config.xml.

Cela devrait vous donner suffisamment de possibilités pour gérer des tâches multiples (qui je suppose est votre raison d'avoir plusieurs actionListener) dans votre logique de serveur.

En outre, si vous devez faire seulement certaines tâches côté client, vous pouvez profiter de plusieurs sur * propriétés JavaScript.

Référence: ICEfaces composants personnalisés Taglib

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top