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 überspringePreResultListener
s 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)