Je suis en train d'implémenter quelques trucs dans mon application basée sur Struts en utilisant des intercepteurs, et je ne comprends plus comment fonctionne leur cycle de vie. Selon les Struts docs ("Interceptors", "Writing interceptors" et "Big picture"), il devrait fonctionner quelque chose comme ceci:Inside Interceptor.intercept(), comment savoir si l'action a déjà été exécutée?
FirstInterceptor NextInterceptor LastInterceptor Action Result LastInterceptor NextInterceptor FirstInterceptor
ce qui est logique, mais je suis trébuchant sur la façon de distinguer un appel d'intercepteurs exécuter avant que l'action d'une exécution après le résultat est rendu (je saute PreResultListener
s ici).
Si je lance un débogueur, je reçois deux appels à
(Mise à jour: Cette partie était une grande confusion sur ma fin, et j'ai pu répondre à ma question ci-dessous une fois que je l'ai eu)intercept()
et ne trouve rien de trop évident sur le
ActionInvocation
Je suis passé.
Les "Big picture" page parle quelque peu confuse d'un « avant » et « après « « clause » qui sont appelés, mais je ne sais pas quoi faire de celui-ci:
[...]
Cela inclut l'invocation des intercepteurs (la clause avant) avant d'invoquer la Action elle-même.
[...]
Interceptor sont exécutés à nouveau (dans l'ordre inverse, en appelant la clause après).
[...]
(Mise à jour: Ces deux phrases sont encore mal, cependant)