1. Interceptor EINLEITUNG
Die Funktion des Interceptor ähnelt dem Filter in der Datei web.xml. Es kann Benutzeranforderungen abfangen und die Seite steuern, indem Benutzeranforderungen abfangen. Der Interceptor ist in Struts-Core-2.2.3.jar konfiguriert. Der ursprüngliche Interceptor ist in Struts-Default.xml konfiguriert, das die grundlegende Verwendungsmethode des Interceptors versiegelt.
Die Struts2 -Interceptor -Funktion ähnelt einem Servletfilter. Bevor die Aktion die Ausführungsmethode ausführt, wird Struts2 zunächst den in struts.xml verwiesenen Interceptor ausführen. Wenn es mehrere Interceptors gibt, wird es in der Reihenfolge nach oben und unten ausgeführt. Nach der Ausführung der Interceptor -Methode aller Interceptors wird die Ausführungsmethode für die Ausführungsmethode ausgeführt.
Der Struts2 -Interceptor muss diese Schnittstelle von com.opensymphoy.xwork2.Interceptor.Interceptor implementieren. Die folgenden drei Methoden müssen im definierten Interceptor implementiert werden:
void Destroy (); void init (); String Intercept (ActionInvocation Invocation) löst eine Ausnahme aus;
Benutzerdefinierte Interceptors müssen die oben genannten drei Methoden überschreiben. Darüber hinaus erbt die Interceptor-Konfigurationsdatei Struts.xml von Struts2 die Originaldatei Struts-Default.xml-Datei, sodass alle Konfigurationsinformationen in Strus-DeFault.xml automatisch im entsprechenden <paket> gehören. Der spezifische Code lautet wie folgt:
<package name = "Demo" Extends = "Struts-Default"> ... </package>
2. Fügen Sie einen Interceptor hinzu
Um einen Interceptor zu verwenden, müssen Sie konfiguriert werden. Struts2 verwendet die Zuordnungsmethode. Wenn Sie also eine bestimmte Funktion verwenden möchten, müssen Sie in der Konfigurationsdatei konfiguriert werden und der Interceptor ist keine Ausnahme. Daher muss das entsprechende Interceptor -Element im Paket hinzugefügt werden, und der Interceptor muss der entsprechenden Klassendatei zugeordnet werden, sodass der entsprechende Interceptor vor der Ausführung der Aktion ausgeführt wird. Die spezifische Verwendungsmethode ist wie folgt.
(1) Fügen Sie die Konfigurationsdatei Struts.xml hinzu und fügen Sie der Datei einen Interceptor hinzu
<package name = "testlogin" namespace = "/" extends = "Struts-Default"> <!-interceptor-> <interceptor name = "myInterceptor"> </interceptor> </interceptor> <actionname = "Demo"> <resultation name = "error" type = "recirect.jsp </resultation> resultation name = "checkError">/checkSession.jsp </result> <interceptor-ref name = "myInterceptor"> </interceptor-ref> <interceptor-ref name = "defaultStack"> </interceptor-ref> </action> </paket>
Im obigen Paket wurde ein Interceptor namens MyInterceptor hinzugefügt, und eine Java -Klasse wurde für den Interceptor registriert, der MyInterceptor wurde und im Com.Interceptor -Paket blockiert wurde. Darüber hinaus wurde dem Paket eine entsprechende Aktion hinzugefügt. Vor der Ausführung der Aktion wird der MyInterceptor -Interceptor zuerst ausgeführt.
(2) Schreiben Sie den registrierten Interceptor Class MyInterceptor. Diese Klasse muss die com.opensymphoy.xwork2.Interceptor.Interceptor -Schnittstelle implementieren und die entsprechende Methode überschreiben
Paket com.Interceptor; import Java.util.map; import com.entity.user; com.opensymphony.xwork2.ActionContext; com.opensymphony.xwork2.ActionInvocation; com.opensymphony.xwork2.Interceptor.Interceptor; public class myInterceptor implementiert interceptor {private Benutzer; public user getUser () {zurücksenden Benutzer; } public void setUser (Benutzer Benutzer) {this.user = user; } @Override public void destroy () {// Todo automatisch generierter Methode stub system.out.println ("---- destroy () ----"); } @Override public void init () {// Todo automatisch generierte Methode stub system.out.println ("------- init () -------"); } @Override public String intercept (actionInvocation Invocation) löst eine Ausnahme aus {// Todo automatisch generierte Methode Stub System.out.println ("-----------"); Map <string, object> session = invocation.getInvocationContext (). GetSession (); if (Session.get ("username")! = null) {System.out.println ("erfolgreich anmelden!"); //session.put ("userername", user.getusername ()); return lading.invoke (); } else {System.out.println ("Login fehlgeschlagen!"); zurück "checkError"; }}}(3) Nach den ersten beiden Schritten wurde der Interceptor konfiguriert. Der letzte Teil ist die Verwendung des Interceptors. Fügen Sie das entsprechende Tag zur Anzeigeseite hinzu und geben Sie die oben erstellte Aktion mit dem Namen Demo an, die für das Tag erstellt wurde. Führen Sie dann die Seite aus, um den entsprechenden Interceptor -Inhalt in der Konsole auszudrucken.
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <! docType html public "-// w3c // dtd html 4.01 transitional // en" http://www.w.w.w.w.w.w.w.w.w3. <html> <head> <meta http-äquiv = "content-type" content = "text/html; charset = utf-8"> <title> Title hier einfügen </title> </head> <body> <body action = "Demo"> username: <input type = "text Typ = "Senden" name = "OK" value = "subieren"> </form> </body> </html>
Ausdruckinhalte:
Analysieren Sie die Ausgangsergebnisse. In der Programmkompilierungsphase wird in der Konfigurationsdatei Struts.xml zunächst die Konfigurationsdatei Struts.xml und in der Aktion der Konfigurationsdatei nach, ob der Interceptor hinzugefügt wurde. Wenn ein Interceptor hinzugefügt wird, finden Sie in <Stinceptor oder der Interceptor -Stapel in <Cinceptors> gemäß dem Interceptor -Namen definiert. Wenn festgestellt wird, dass der Interceptor definiert ist, finden Sie die entsprechende registrierte Klasse basierend auf dem Interceptor und finden Sie schließlich die registrierte Klasse im Paket und führen Sie die entsprechende Init () -Methode aus. Der allgemeine Prozess des Programms zur Ausführung des Programms ähnelt der Zusammenstellungsphase. Nachdem der Benutzer eine Anfrage im Vordergrund eingereicht hat, wird er nach der entsprechenden Aktion in Struts.xml suchen. Wenn es gefunden wird, wird der Interceptor gefunden. Wenn es nicht gefunden wird, wird der entsprechende Fehler geworfen. Schließlich wird die Intercept -Methode der Interceptor -Registrierungsklasse ausgeführt.
3. Interceptor Stack
Interceptors haben auch das Konzept des Stacks. Sie definieren die gebrauchten Abfanggeräte in einem gemeinsamen Staat, um ein einheitliches Management zu erreichen, damit Interceptors in das Paket geteilt werden können, was die Verwendung von Interceptors erheblich erleichtert. Wiederholte Interceptors werden häufig in einem Paket verwendet. Wenn Sie jedes Mal Interceptor-Ref zur Aktion hinzufügen, ist dies sehr problematisch. Dann wird der Interceptor -Stapel erzeugt, um dieses Problem zu lösen. Die spezifische Konfiguration ist wie folgt:
<package name = "testlogin" namespace = "/" extends = "struts-default"> <!-interceptor-> <interceptor name = "myInterceptor"> </interceptor> <!-Definieren Sie eine öffentliche Interceptor-Kette. Im Aktions-Tag muss nur auf die Interceptor-Kette verwiesen werden-> <Interceptor-Stack name = "defaulttstack1"> <interceptor-ref name = "myInterceptor"> </interceptor-ref> <interceptor-ref name = "defaultstack"> </interceptor-ref> </interceptor-rref name = "stapel type = "redirect">/error.jsp </result> <result name = "success">/success.jsp </result> <resultation name = "checkError">/checkSession.jsp </result> <interceptor-ref name = "defaultStack1"> </interceptor-ref> </action> </package> package>
Im Beispiel wird Interceptor-Stack verwendet, um einen Interceptor-Stack mit dem Namen defaulttstack1 zu definieren. Der ausführende Interceptor wird dem Stapel hinzugefügt, der Interceptor wird eingekapselt und der Interceptor -Stapel wird direkt in der Aktion aufgerufen, wodurch die Freigabe des Interceptor -Stacks realisiert wird.
4. Standard -Interceptor -Stack
Darüber hinaus kann der Standard -Interceptor -Stack definiert werden, dh wenn kein Interceptor in einer Aktion definiert ist, wird der öffentliche Interceptor standardmäßig ausgeführt. Es gehört zu dem gleichen Niveau wie das Tag der Interceptors-Tag und wird unter Verwendung des Standard-Außeninterzeptor-Ref definiert.
<package name = "testlogin" namespace = "/" extends = "struts-default"> <!-interceptor-> <interceptor name = "myInterceptor"> </interceptor> <!-Definieren Sie eine öffentliche Interceptor-Kette. Im Action-Tag muss nur auf die Interceptor-Kette verwiesen werden-> <Interceptor-Stack-Name = "defaultInter"> <interceptor-ref name = "myInterceptor"> </interceptor-ref> <interceptor-ref name = "defaultStack"> </interceptor-ref> </interceptor-stack> </wods isumtor-stack> </wodach die automatisch-stack> </wods is wods tack-</</</</</</</</</</</</</</</</</</</</</</</</</</; -> <Standard-Interceptor-ref name = "defaultInter"> </default-interceptor-ref> <actionname = "Demo"> <result name = "fehler" type = "redirect">/error.jsp </result> <Ergebnisname = "Erfolg">/Erfolg.jsp </result> <sergebnisses name = checkError ">/checkking.jsp </result> </resultation
Der definierte Standard -Interceptor -Stapel führt nur den benutzerdefinierten Standard -Interceptor -Stack aus, wenn die Aktion keinen Interceptor angibt. Wenn der Interceptor in der Aktion neu definiert wird, wird der benutzerdefinierte Standard -Interceptor -Stack überschrieben.
5. Keine Interceptor -Ausführung
Es gibt eine andere Situation, in der ein Paket den Standard -Interceptor definiert, aber kein Interceptor muss in einer bestimmten geschriebenen Aktion ausgeführt werden. Anschließend können Sie der entsprechenden Aktion einen Interceptor namens defaultStack hinzufügen. Es ist der Standard -Interceptor des Systems und es wird keine Operationen geben.
<package name = "testlogin" namespace = "/" extends = "struts-default"> <!-interceptor-> <interceptor name = "myInterceptor"> </interceptor> <!-Definieren Sie eine öffentliche Interceptor-Kette. Im Action-Tag muss nur auf die Interceptor-Kette verwiesen werden-> <Interceptor-Stack-Name = "defaultInter"> <interceptor-ref name = "myInterceptor"> </interceptor-ref> <interceptor-ref name = "defaultStack"> </interceptor-ref> </interceptor-stack> </wods isumtor-stack> </wodach die automatisch-stack> </wods is wods tack-</</</</</</</</</</</</</</</</</</</</</</</</</</; -> <Standard-Interceptor-ref name = "defaultInter"> </default-interceptor-ref> <actionname = "Demo"> <result name = "fehler" type = "redirect">/error.jsp </result> <Ergebnisname = "success">/schres. wird nicht ausgeführt-> <interceptor-ref name = "defaultStack"> </interceptor-ref> </action> </package>
6. Intercept -Methode
6.1 Nutzung
Der obige Interceptor implementiert nur die Interceptor -Abfangenaktion. Tatsächlich hat der Interceptor eine sehr leistungsstarke Funktion und kann auch die entsprechende Aktionsmethode abfangen. Der Unterschied zwischen Abschlussmaßnahmen besteht darin, dass Sie den KlassenmethodefilterInterceptor erben müssen, wenn Sie die Methode abfangen möchten. Diese Klasse ist in xwork-core.jar eingeschlossen, was erneut beweist, dass Webwork der Kern von Struts2 ist. Darüber hinaus ist es auch erforderlich, der Konfigurationsdatei entsprechende Attribute hinzuzufügen, um die Interception-Methode und die Nicht-Interception-Methode zu bestimmen. Die spezifische Konfigurationsmethode lautet wie folgt:
<package name = "testlogin" namespace = "/" extends = "struts-default"> <!-interceptor-> <interceptor name = "myInterceptor"> </interceptor> <!-Definieren Sie eine öffentliche Interceptor-Kette. Im Aktions-Tag muss nur auf die Interceptor-Kette verwiesen werden-> <Interceptor-Stack name = "defaultInter"> <interceptor-ref name = "myInterceptor"> </interceptor-ref> <interceptor-ref name = "defaultStack"> </interceptor-ref> </interceptor-stack> </</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</action "> </</</</</</</</</</</</</</</</</</Action,". type = "redirect">/error.jsp </result> <result name = "success">/success.jsp </result> <resultname = "checkError">/checkSession.jsp </result> <result name = "checkError">/pechsesSession.jsp </result> <! In den Excudemethods-> <interceptor-ref name = "DefaultStack"> <param name = "includeMethods"> Fügen Sie den Methodennamen hinzu. </package>
Code in der Klasse, der die entsprechende Interceptor -Methode der MethodFilterInterceptor -Klasse erbt:
Paket com.Interceptor; import Java.util.map; com.opensymphony.xwork2.ActionContext; com.opensymphony.xwork2.ActionInvocation; com.opensymphony.xwork2.Interceptor.MethodFilterInterceptor; public class inter erweitert methodFilterInterceptor {@Override public String doIntercept (ActionInvocation Invocation) löst eine Ausnahme aus {System.out.println ("-intercept ()-"); // Erhalten Sie die entsprechende Sitzungskarte <String, Object> Session = Invocation.getInvocationContext (). GetSession (); Map request = (map) actionContext.getContext (). Get ("request"); String userername = (String) request.get ("user.username"); if (session.get ("userername")! = null) {String result = invocation.invoke (); System.out.println ("-End ()-"); Rückgabeergebnis; }}}} 6.2 Demo
Schauen wir uns ein Beispiel für eine Abfangmethode an und analysieren die Ergebnisse. Das folgende Beispiel zeigt die Ausgangsergebnisse der Intercept -Methode. In der Instanz wird eine Anmeldungsklasse separat erstellt, um die Methode hinzuzufügen, die durch Aktion ausgeführt werden soll. Die Inter -Klasse wird in der Interceptor -Methode überschrieben und gibt aus, ob eine bestimmte Methode in der Konsole abgefangen werden soll. Die Datei login.jsp wird hinzugefügt, um die Ausführung der drei Methoden zu demonstrieren.
(1) Die Definition des Methode Interceptor in Struts.xml definiert einen Interceptor namens Inter im Paket und gibt Parameter im Interceptor an. IncludeMethods wird verwendet, um die Methode abzufangen1. Method2 in Excudemethods bedeutet, dass die Methode2 -Methode nicht abgefangen wird. Die spezifische Konfiguration ist wie folgt:
<! DocType stolzs public "-// Apache-Software-Stiftung // DTD Struts Konfiguration 2.0 // en" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <Constant Name = "Stribs.Action.Action.Action.Extension", ","> </</</</</</</</</</</</</</</</</</</</</konstant ","> </</</; <interceptor name = "inter"> <param name = "includeMethods"> method1 </param> <!-Intercept-Methode1 Methode-> <param name = "excudemethods"> method2 </param> </interceptor> <interceptor-stack name = "myInterceptor"> <interceptor-ref name name = "defaultStack"> </interceptor-ref> </interceptor-stack> </interceptor-stack> </interceptors> <actionname = "loginAction"> <result name = "Erfolg"> Erfolg.jsp </result> <result name = "error"> error.jsp </result> <result> error "> error"> error "> error"> error "> error"> error "> error"> error "> error"> errhor "> errbst. type = "redirectAction"> Welcome </result> <interceptor-ref name = "inter"> </interceptor-ref> <interceptor-ref name = "defaultStack"> </interceptor-ref> </action> </package> </struts>
(2) Loginaction-Klasse, konfigurieren Sie die Aktion in login.jsp und fügen Sie drei Methoden Methoden hinzu. Methode3 zu dieser Klasse, Methode1 wird abgefangen, Methode2 und Method3 sind nicht abgefangen, und schließlich überprüfen wir das Ausgabeergebnis.
Paket com.Action; import com.opensymphony.xwork2.actionsupport; Die LoginAction für öffentliche Klasse erweitert actionupport {@Override public String execute () löst Ausnahme aus {if (this.username.equals ("admin") && this.password.equals ("admin") {return "Erfolg"; } else if (this.username.equals ("Cancel") && this.password.equals ("cancel")) {return "cancel"; } else {return "Fehler"; }} public void method1 () {System.out.println ("Ausführungsmethode: Methode1"); } public void method2 () {System.out.println ("Ausführungsmethode: Methode2"); } public void method3 () {System.out.println ("Ausführungsmethode: methode3"); } private String -Benutzername; privates Zeichenfolgenkennwort; public String getUnername () {return this.username; } public void setUnername (String -Benutzername) {this.username = userername; } public String getPassword () {return this.password; } public void setPassword (String -Passwort) {this.password = password; }}(3) Inter -Class -Erben der MethodeFilterInterceptor -Klasse und wird zur Implementierung von Abschlussmethoden verwendet. Schreiben Sie die DOIntercept -Methode neu und fügen Sie die entsprechenden Informationen für den Intercept in die Methode hinzu.
Paket com.Interceptor; import Java.util.date; import Java.util.map; com.action.loginaction; com.opensymphony.xwork2.ActionContext; com.opensymphony.xwork2.ActionInvocation; com.opensymphony.xwork2.Interceptor.MethodFilterInterceptor; public class inter erweitert methodFilterInterceptor {@Override Protected String doIntercept (ActionInvocation Invocation) löst eine Ausnahme aus {// todo automatisch generierte Methode stub system.out.println ("Interceptor Intercepts vor der Aktion Ausführung"+neues Datum ()); String result = Invocation.invoke (); // Die Aktionsmethode system.out.println ausführen ("Interceptor Intercepts After Action Execution"+New Date ()); Rückgabeergebnis; }}(4) Login.jsp, fügen Sie drei Schaltflächen auf der JSP -Seite hinzu, zeigen drei Methoden und beurteilen Sie das Interceptor des Interceptors der Methode. Die von den drei Schaltflächen nach dem Klicken zurückgepassten Aktionen werden in JavaScript dynamisch hinzugefügt. Dies erreicht die Methode, verschiedene Aktionen in einer Form auszuführen. Natürlich gibt es andere Methoden, die im nächsten Artikel erörtert werden.
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <! docType html public "-// w3c // dtd html 4.01 transitional // en" http://www.w.w.w.w.w.w.w.w.w3. <html> <head> <meta http-equiv = "content-type" content = "text/html; charSet = utf-8"> <title> Title hier einfügen </title> <script type = "text/javaScript"> // Methode 1, Definieren Sie ein Instanz der abgefangenen Methodenfunktionsmethode () {) {) {var Form = document.form.FORMS [0]. Form.Action = "LoginAction! Methode1"; Form.Submit (); } // Methode 2 fügen Sie eine Methode hinzu, die für die Taste 2 Funktionsmethode 2 () {var form = document.Forms [0] nicht abgeht. Form.Action = "LoginAction! Method2"; Form.Submit (); } // Methode 3 fügen Sie eine Methode hinzu, die für die Taste 3 Funktion Methode () {var form = document.forms [0] nicht abgeht. Form.Action = "LoginAction! Method3"; Form.Submit (); } </script> </head> <body> <form> Benutzername: <Eingabe type = "text" name = "userername"> <br> Kennwort: <Eingabe type = "text" name = "password"> <br> <Eingabe type "subieren" name = "OK" value = "button1" onclick = "method1 ()"> <"<Eingabe". Typ = "Senden" name = "Ok2" value = "button3" onclick = "method3 ()"> </form> </body> </html> Seitenansicht nach Abschluss des Laufs:
(5) Analysieren Sie die laufenden Ergebnisse, klicken Sie auf die Schaltflächen 1, 2 bzw. 3 und geben Sie die Ergebnisse in der Konsole aus. Taste 1 ist die gebundene Methode1. Diese Methode fällt in Struts.xml ab. Wenn das Ergebnis korrekt ist, wird das abgefangene Ergebnis angezeigt. Die entsprechenden Tasten 2 und 3 geben nur die laufenden Ergebnisse aus, da sie nicht abgefangen werden. Schauen Sie sich dann das Ergebnisdiagramm unten an:
Das Ergebnisdiagramm ist genau das Ergebnis unserer Analyse. Die Taste 1 wurde abgefangen und die DOIntercept -Methode in der Inter -Klasse wurde ausgeführt. Die entsprechenden Tasten 2 und 3 der beiden wurden nicht abgefangen. Mit anderen Worten, Methode1 wird in die Whitelist des Methode Interceptor platziert, und die Methode muss bei der Ausführung abgefangen werden. Method2 wird in die schwarze Liste des Interceptors platziert, und es besteht keine Notwendigkeit, die Methode abzufangen. Method3 tut nichts.
7. Schlussfolgerung
Der Inhalt des Interceptors wird hier zusammengefasst. Der Interceptor bietet sehr leistungsstarke Funktionen und ermöglicht es Entwicklern, die Ausgabeergebnisse zur Laufzeit zu steuern und die Programmierflexibilität zu erhöhen. Versuchen Sie außerdem nicht, sich an theoretische Dinge zu erinnern. Sie müssen sie rational analysieren, mehr praktizieren und einige Beispiele nutzen, um die Analyseergebnisse eingehender zu verstehen.
PS: Funktionale Beschreibung des von Struts2 (xwork) bereitgestellten Interceptors
Interceptor | Name | veranschaulichen |
Alias Interceptor | alias | Die Anforderungsparameter werden zwischen verschiedenen Anforderungen in verschiedene Namensdateien konvertiert, und der Anforderungsinhalt bleibt unverändert |
Abfangverkettung | Kette | Lassen Sie die Eigenschaften der vorherigen Aktion durch die nächste Aktion zugreifen und werden jetzt in Verbindung mit dem Ergebnis des Kettentyps verwendet (<Ergebnistyp = "Kette">). |
Kontrollkästchen Interceptor | Kontrollkästchen | Der automatische Verarbeitungscode des Kontrollkästchens hinzugefügt, das den Inhalt des DeverckBoxs auf False festlegt, während HTML standardmäßig das UnreverckBox nicht übermittelt. |
Cookies Interceptor | Kekse | Verwenden Sie den konfigurierten Namen und den Wert, um sich auf Cookies zu beziehen |
Conversion -Fehler Interceptor | ConversionError | Fügt einen Fehler aus dem ActionContext zum Eigenschaftsfeld der Aktion hinzu. |
Erstellen Sie Sitzungss -Interceptor | erzeugt | Erstellen Sie automatisch eine HTTPSession, die für Interceptor -Dienste verwendet werden soll, die eine HTTPSession erfordern. |
Debugging Interceptor | Debuggen | Geben Sie unterschiedliche Debugging -Seiten an, um den internen Datenstatus anzuzeigen. |
Abfangwerk ausführen und warten | Execandwait | Führen Sie Aktionen im Hintergrund aus, während der Benutzer zu einer Zwischenseite für die Zwischenzeit führt. |
AUSSCHLIESSUNG VERCALTOR | Ausnahme | Positionieren Sie die Ausnahme zu einem Bildschirm |
Datei -Upload -Interceptor | FileUpload | Geben Sie die Datei -Upload -Funktion an |
I18N Interceptor | i18n | Notieren Sie das vom Benutzer ausgewählte Gebietsschema |
Logger Interceptor | Logger | Name der Aktion der Aktion |
Message Store Interceptor | speichern | Speichern oder Zugriff auf Nachrichten, Fehler, Feldfehler usw., die in Aktionsklassen angezeigt werden, die die Schnittstelle zur ValidationAware -Schnittstelle implementieren. |
Modellgetriebener Interceptor | modellgetrieben | Wenn eine Klasse modelldurchdringlich implementiert, platzieren Sie das von getModel erhaltene Ergebnis im Wertstapel. |
Modellgetriebenes Scoped | Scoped-Model-gesteuert | Wenn eine Aktion ScopedModelDiven implementiert, nimmt der Interceptor das Modell aus dem entsprechenden Bereich heraus und ruft die SETModel -Methode der Aktion auf und steckt es in die Aktion. |
Parameter Interceptor | Parameter | Setzen Sie die Parameter in der Anfrage auf die Aktion. |
Vorbereiten | Vorbereiten Sie vorbereiten | Wenn Acton vorbereitete implementiert wird, ruft der Interceptor die Vorbereitung der Aktionsklasse auf. |
Bereichsumfang | Umfang | Einfache Möglichkeit, den Aktionsstatus in Sitzung und Anwendung zu speichern. |
Servlet Config Interceptor | ServletConfig | Bietet Methoden zum Zugriff auf httpServletRequest und httpServletResponse, die in Form einer Karte zugreifen. |
Statische Parameter Interceptor | staticparams | Setzen Sie die Inhalte in <PARAM> in <Aktion> in die entsprechende Aktion aus der Datei Struts.xml. |
Rollen Interceptor | Rollen | Ermittelt, ob der Benutzer eine von JAAS angegebene Rolle hat, sonst wird er nicht ausgeführt. |
Timer -Interceptor | Timer | Ausführungsausführungszeit Ausgabe |
Token Interceptor | Token | Vermeiden Sie es, durch Token zu doppelklicken |
Token Session Interceptor | TokenSession | Wie Token-Interceptor jedoch beim Doppelklicken werden die angeforderten Daten in der Sitzung gespeichert |
Validierungs -Interceptor | Validierung | Überprüfen Sie die übermittelten Daten mit dem in der Datei Action-Validation.xml definierten Inhalt. |
Workflow Interceptor | Workflow | Validieren Sie die Methode von Call Action und sobald ein Fehler vorliegt, wird sie in den Eingangsbildschirm verlagert. |
Parameterfilter -Interceptor | N / A | Entfernen Sie unnötige Parameter aus der Parameterliste |
Profilerstellung Interceptor | Profilerstellung | Profil über Parameter aktivieren |