Ich möchte wissen, ob es in JSF einen Interceptor gibt (wie wir es im Frühling verwenden), und wie implementieren wir es?
Sie könnten dafür ein PhaseListener
implementieren. Sie könnten sie so programmieren, dass sie auf eine spezifische JSF-Phase hören, die Sie angeben in der überschriebenen Methode getPhaseId()
. Sie können die Ereignisse vor und nach der Phase durch beforePhase()
und afterPhase()
Methoden.
Im folgenden Beispiel wird die Renderantwortphase überwacht:
%Vor% Damit es ausgeführt werden kann, müssen Sie es als <phase-listener>
im Abschnitt <life-cycle>
der Datei faces-config.xml
registrieren. Sie können mehrere <phase-listener>
s haben.
Sie können PhaseId.ANY_PHASE
in% co_de angeben %, damit der Phasen-Listener in jeder einzelnen JSF-Phase läuft (beachten Sie, dass nicht immer alle von ihnen immer ausgeführt werden, hängt vom Anforderungstyp ab). Sie können bei Bedarf die aktuelle Phasen-ID in den Vorher- und Nachher-Phasenmethoden abrufen. getPhaseId()
.
Alternativ kann ein PhaseEvent#getPhaseId()
genauso gut funktionieren, wenn Sie möchten ein globalerer Hook (und daher sind Sie nicht gerade an JSF-Anfragen / Antworten interessiert und Sie brauchen nichts von Filter
).
Tags und Links jsf jsf-2 interceptor