Dies ist mein Phasenhörer
%Vor%Wenn ich auf eine Befehlsschaltfläche in meiner Seite klicke, rufe ich eine Aktionsmethode auf und führe eine Verarbeitung durch, aber die Aktionsmethode wird überhaupt nicht aufgerufen, aber im Serverprotokoll kann ich die von meinem PhaseListener gedruckten Nachrichten sehen Phasen.
Wenn meine Ansicht nicht geändert wurde, hätte sie nach der RESTORE_VIEW-Phase angehalten?
irgendwelche Gedanken?
Hinzufügen des Codes für Wie ich die Befehlsschaltfläche anzeigen:
%Vor%Ich zitiere aus diese Antwort :
Wenn eine
UICommand
-Komponente die zugehörige Aktion nicht aufrufen kann, überprüfen Sie Folgendes:
UICommand
-Komponenten müssen innerhalb einerUIForm
-Komponente (z. B.h:form
) platziert werden.- Sie können nicht mehrere <% c0_de% -Komponenten ineinander verschachteln (achten Sie auf Include-Dateien!).
- Es sollte kein Validierungs- / Konvertierungsfehler aufgetreten sein (verwenden Sie
UIForm
, um alle zu erhalten).- Wenn
h:messages
-Komponenten in einerUICommand
-Komponente platziert werden, stellen Sie sicher, dass genau derselbeUIData
(das Objekt hinter demDataModel
-AttributUIData
) beibehalten wird.- Die Attribute
value
undrendered
der Komponente und alle übergeordneten Komponenten sollten nicht aufdisabled
während der Phase der Anforderungswertwerte ausgewertet werden.- Stellen Sie sicher, dass keine
false
oder keinePhaseListener
in der Anfrage-Antwort-Kette den JSF-Lebenszyklus geändert hat, um die Aktionsphase zu übergehen.- Stellen Sie sicher, dass keine
EventListener
oderFilter
in der gleichen Anfrage-Antwort-Kette die Anfrage vonServlet
irgendwie blockiert hat.
Ein weiterer Grund kann sein, dass Sie nicht den Code ausführen, von dem Sie glauben, dass er ausgeführt wird.
Tags und Links jsf