Interceptor in JSF

8

Ich möchte wissen, ob es in JSF einen Interceptor gibt (wie wir es im Frühling verwenden), und wie implementieren wir es?

    
user1117297 03.01.2012, 07:24
quelle

1 Antwort

10

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.

%Vor%

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() .

%Vor%

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 ).

%Vor%     
BalusC 03.01.2012, 12:03
quelle

Tags und Links