Aktionsmethode wird nicht in JSF [duplicate] aufgerufen

8

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%     
gekrish 15.06.2010, 08:55
quelle

3 Antworten

30

Ich zitiere aus diese Antwort :

  

Wenn eine UICommand -Komponente die zugehörige Aktion nicht aufrufen kann, überprüfen Sie Folgendes:

     
  1. UICommand -Komponenten müssen innerhalb einer UIForm -Komponente (z. B. h:form ) platziert werden.
  2.   
  3. Sie können nicht mehrere <% c0_de% -Komponenten ineinander verschachteln (achten Sie auf Include-Dateien!).
  4.   
  5. Es sollte kein Validierungs- / Konvertierungsfehler aufgetreten sein (verwenden Sie UIForm , um alle zu erhalten).
  6.   
  7. Wenn h:messages -Komponenten in einer UICommand -Komponente platziert werden, stellen Sie sicher, dass genau derselbe UIData (das Objekt hinter dem DataModel -Attribut UIData ) beibehalten wird.
  8.   
  9. Die Attribute value und rendered der Komponente und alle übergeordneten Komponenten sollten nicht auf disabled während der Phase der Anforderungswertwerte ausgewertet werden.
  10.   
  11. Stellen Sie sicher, dass keine false oder keine PhaseListener in der Anfrage-Antwort-Kette den JSF-Lebenszyklus geändert hat, um die Aktionsphase zu übergehen.
  12.   
  13. Stellen Sie sicher, dass keine EventListener oder Filter in der gleichen Anfrage-Antwort-Kette die Anfrage von Servlet irgendwie blockiert hat.
  14.   

Ein weiterer Grund kann sein, dass Sie nicht den Code ausführen, von dem Sie glauben, dass er ausgeführt wird.

    
BalusC 15.06.2010, 11:38
quelle
3

Dies bedeutet im Allgemeinen, dass auf der Seite Validierungsfehler vorliegen. Versuchen Sie, immediate="true" einzustellen, um die Fehler zu beheben, oder verwenden Sie <h:messages> , um die aufgetretenen Fehler anzuzeigen.

    
Bozho 15.06.2010 11:15
quelle
0

Prüfen Sie, ob ein Fehler bei einem Setter Ihrer Komponenten auftritt.

    
chuckedw 23.11.2013 14:27
quelle

Tags und Links