ICEFACES: Mehrere ActionListener für Befehlsknopf
-
19-09-2019 - |
Frage
Ist es möglich, mehrere ActionListener auf einer Befehlstaste zu haben?
Wenn nicht, gibt es irgendwie um das?
Danke für Ihre Hilfe!
Lösung
Nein, Sie können nur zwei serverseitige Rückrufmethoden hinzufügen:
actionListener
undaction
.
<ice:commandButton action="#{bean.navigateTo}" actionListener="#{bean.doSomething}"/>
actionListener
muss auf eine öffentliche Methode verweisen, die zurückkommt void
und nimmt einen Action -Wert als Argument. Es wird im Allgemeinen für Aufgaben verwendet, die nicht mit einer Navigationslogik zusammenhängen und den Vorteil haben, um Ihnen den alten und neuen (= geänderten) Wert der Kontrolle zu bieten. Dies macht bei Eingabesteuerungen wie Kontrollkästchen besondere Sinn.
action
muss auf eine öffentliche Methode verweisen, die a zurückgibt String
Ohne Argumente zu nehmen. Die Methode erledigt alles, was für das Navigieren benötigt wird - beispielsweise zusätzliche Validierung (wenn sie nicht von einem grundlegenden JSF -Validator behandelt wurde). Das Ergebnis muss mit den Navigationsregeln übereinstimmen faces-config.xml
.
Dies sollte Ihnen genügend Möglichkeiten bieten, um mehrere Aufgaben zu erledigen (von denen ich annehme, dass es Ihr Grund für mehrere ActionListener ist) in Ihrer Serverlogik.
Wenn Sie nur einige clientseitige Aufgaben ausführen müssen, können Sie mehrere auf* JavaScript-Eigenschaften nutzen.