Inside Interceptor.intercept (), woher weiß ich, ob die Aktion bereits ausgeführt wurde?

Ich implementiere einige Dinge in meiner Struts-basierten Anwendung mithilfe von Interceptors und bin verwirrt darüber, wie ihr Lebenszyklus funktioniert. Laut den Struts-Dokumenten "Interceptors", "Abfangjäger schreiben" und"Großes Bild"), es sollte ungefähr so funktionieren:

FirstInterceptor
  NextInterceptor
    LastInterceptor
      Action
      Result
    LastInterceptor
  NextInterceptor
FirstInterceptor

was Sinn macht, aber ich stolpere darüber, wie man einen Interceptor-Aufruf, der vor der Aktion ausgeführt wird, von einem Aufruf unterscheidet, der nach dem Rendern des Ergebnisses ausgeführt wird (ich überspringePreResultListeners hier).Wenn ich einen Debugger starte, erhalte ich zwei Aufrufe anintercept() und kann nichts zu offensichtlich auf dem @ findActionInvocation Ich werde bestanden. (Aktualisiere: Dieser Teil hat mich sehr verwirrt und ich konnte meine Frage unten beantworten, sobald ich sie erhalten habe.)

Das"Großes Bild" page spricht etwas verwirrend von einer "Vorher" - und "Nachher" -Klausel, die aufgerufen wird, aber ich weiß nicht, was ich daraus machen soll:

[...]

Dies schließt das Aufrufen von Interceptors (der Vorher-Klausel) vor dem Aufrufen der Aktion selbst ein.

[...]

Interceptors werden erneut ausgeführt (in umgekehrter Reihenfolge, Aufruf der after-Klausel).

[...]

(Aktualisiere: Diese beiden Sätze sind allerdings immer noch schlecht)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage