Wie wir alle wissen, kann die Aktionsklasse von Strut2 alle relevanten Werte über Attribute wie Anforderungsparameter, Aktionskonfigurationsparameter, die Übergabe von Attributwerten an andere Aktionen (durch Kettenergebnisse) usw. erhalten, um diese Parameterwerte zu erhalten. Das einzige, was wir tun müssen, ist, die Eigenschaft mit dem gleichen Namen wie der Parameter in der Aktionsklasse zu deklarieren. Bevor Struts2 die Aktionsmethode der Aktionsklasse aufruft (die Standardeinstellung ist die Ausführungsmethode), wird die entsprechende Aktionseigenschaft zugewiesen.
Um diese Funktion zu erfüllen, hängt Struts2 in hohem Maße vom Ealestack -Objekt ab. Dieses Objekt läuft den gesamten Lebenszyklus der Aktion (jede Objektinstanz der Aktionsklasse hat ein Evalestack -Objekt). Wenn Struts2 eine Action-Anforderung empfängt, wird zunächst eine Instanz des Aktionsklassenobjekts erstellt, die Aktionsmethode jedoch nicht aufgerufen, sondern zuerst die entsprechenden Eigenschaften der Aktionsklasse auf dem obersten Knoten des Evalestack-Objekts (das Ehegattenstapelobjekt entspricht einem Stapel). Es ist nur so, dass alle Attributwerte Standardwerte sind, z.
Nach der Verarbeitung der obigen Arbeiten ruft Struts2 den Interceptor in der Interceptor -Kette auf. Nach dem Aufrufen aller Interceptors wird die Aktionsmethode der Aktionsklasse aufgerufen. Vor dem Aufrufen der Aktionsmethode wird der Attributwert im obersten Knoten des Evalestack-Objekts dem entsprechenden Attribut in der Aktionsklasse zugewiesen. Jeder sollte aufpassen, dies bringt uns viel Flexibilität. Das heißt, während des Prozesses von Struts2 kann der Wert des Attributs im Evalestack -Objekt geändert werden. Wenn ein bestimmter Attributwert geändert wird, wird der entsprechende Attributwert der Aktionsklasse zum Wert der letzten Änderung des Attributs im Interceptor.
Aus der obigen Beschreibung ist es leicht zu wissen, dass Sie in der Aktionsklasse von Struts2 Parameterwerte mit demselben Namen wie das Attribut erhalten können, das von verschiedenen Interceptors behandelt wird. Beispielsweise ist der Interceptor, der die Anforderungsparameter erhält, Parameter, und der Interceptor, der die Konfigurationsparameter von Aktion erhalten, ist staticParams usw. Lesen Sie die entsprechenden Werte innerhalb dieser Interceptors und aktualisieren Sie die Werte der entsprechenden Eigenschaften des oberen Nodens des Evalestack-Objekts. Das Evalestack -Objekt ist wie ein Förderband, der den Attributwert von einem Interceptor an einen anderen Interceptor übergibt (natürlich kann sich der Attributwert ändern und schließlich an das Aktionsobjekt weitergeben, und der endgültige Wert des Attributs im Evalestack -Objekt wird dem entsprechenden Attribut der Aktionskurs zugewiesen.
Wenn wir EL -Ausdrücke in der Anzeigeschicht verwenden, können wir nicht nur auf die Eigenschaften in den 11 verborgenen Objekten im EL -Expression zugreifen, sondern auch auf die Objekteigenschaftswerte in EhegitySpack zugreifen, da Struts2 httpServletRequest weiter enthält.
Die öffentliche Klasse StrutsRequestWrapper erweitert HttpServletRequestWrapper {public strutSequestWrapper (httpServletRequest Req) {Super (req);} public Object GetatTribute (String S) {...... ActionContext ctx = actionconte.getContext (); Aus dem Anforderungsbereich if (ctx! Evalestack ...}} Rückgabeattribut;}}Zusammenfassen
In diesem Artikel geht es um diesen Artikel darüber, wie Strut2 Anforderungsparameter verkauft, und ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!