2009-08-24 4 views

Répondre

1

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

Questions connexes