Warum sollte process="@ this" explizit zu p: commandButton hinzugefügt werden, damit die Aktion aufgerufen wird?

8

Ich weiß, dass wir explizit process="@this" hinzufügen müssen, damit die p:commandbutton -Aktion aufgerufen wird, und ich weiß auch, dass das Prozessattribut standardmäßig auf " @form " in "presefaces" steht.

Da der Prozess standardmäßig auf @form eingestellt ist, sollte die Schaltfläche nicht zusammen mit den anderen Elementen im Formular verarbeitet werden und ihre Aktion sollte aufgerufen werden.

Kann jemand den genauen Grund dafür erklären?

    
Srikanth Ganji 06.03.2014, 20:12
quelle

1 Antwort

25

Process @form bedeutet die aktuelle Form von commandLink/Button
Process @this meint die aktuelle Komponente von commandLink/Button . Überprüfen Sie den folgenden Code.

process.xhtml

%Vor%

ProcessBean.java

%Vor%

Lassen Sie uns ein Eingabefeld eingeben

%Vor%

Klicken Sie auf button1 , alle JSF component(Eg : id, name, address) das gesamte Formular wird verarbeitet. Ausgabe wird sein:

%Vor%

Klicken Sie auf button2 , der Prozess wird selbst sein (zB: button2). Kein Prozess für id, name, address . Ausgabe wird sein:

%Vor%

Klicken Sie auf button3 , alle JSF component(Eg : name) gesamt von panel_1 und button3 wird verarbeitet. Ausgabe wird sein:

%Vor%

Ruft Ihre Aktionsmethode nicht auf? Möglicherweise ist die Validierung oder Konvertierung vor dem Aufruf fehlgeschlagen.

    
CycDemo 29.07.2014, 04:07
quelle