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?
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:
Klicken Sie auf button2
, der Prozess wird selbst sein (zB: button2). Kein Prozess für id, name, address
. Ausgabe wird sein:
Klicken Sie auf button3
, alle JSF component(Eg : name)
gesamt von panel_1
und button3
wird verarbeitet. Ausgabe wird sein:
Ruft Ihre Aktionsmethode nicht auf? Möglicherweise ist die Validierung oder Konvertierung vor dem Aufruf fehlgeschlagen.
Tags und Links forms jsf primefaces commandbutton