Eine an den Server übermittelte Verarbeitung kann normalerweise in zwei Phasen unterteilt werden. In der ersten Stufe wird der Serverstatus abgefragt (Abfragen oder Aktualisierungen der Datenbank), und die zweite Stufe wählt eine geeignete Ergebnisseite aus und gibt sie an den Benutzer zurück (den Inhalt des hier zu diskutierten Ergebnisses).
Struts2 bietet Unterstützung für verschiedene Arten von Rückkehrergebnissen. Zu den allgemeinen gehören JSP, Freemarker, Geschwindigkeit usw.
Die verschiedenen Arten von Rückgabeergebnissen, die von Struts2 unterstützt werden, sind:
| Name | veranschaulichen |
|---|---|
| Kettenergebnisse | Wird verwendet, um Aktionsketten zu behandeln |
| Dispatcher -Ergebnisse | Wird verwendet, um sich auf Seiten zu wenden, normalerweise mit JSP zu handhaben |
| Freimaurerergebnisse | Behandeln Freimaurer -Vorlagen |
| HTTPHEADER -Ergebnisse | Wird verwendet, um ein spezielles HTTP -Verhalten zu kontrollieren |
| Ergebnisse umleiten | Zu einer URL umleiten |
| Aktionsergebnisse umleiten | Zu einer Aktion umleiten |
| Stream -Ergebnisse | Senden Sie InputsReam -Objekt an den Browser, der normalerweise verwendet wird, um Datei -Downloads zu verarbeiten |
| Geschwindigkeitsergebnisse | Geschwindigkeitsvorlagen behandeln |
| XLS -Ergebnisse | Prozess XML/XLST -Vorlagen |
| Klartext Ergebnis | Zeigen Sie den Original -Dateiinhalt an, z. B. den Dateiquellencode |
| S2PLUGINS: Fliesen Ergebnis | Verwenden Sie in Kombination mit Fliesen |
Darüber hinaus enthält der Ergebnistyp von Drittanbietern auch das JasperReports-Plugin, das speziell zur Verarbeitung der Berichtsausgabe des Jasperreport-Typs verwendet wird.
Es gibt bereits Definitionen für alle Arten von Ergebnissen in der Datei Struts-Default.xml:
<result-types> <result-type name = "chain" class = "com.opensymphony.xwork2.ActionChainResult"/> <result-type name = "Dispatcher" class = "org.apache.struts2.Dispatcher.ServletDispatcherresult" Default = "/> <result-type-type-type name = "freemarker" class = "org.apache.struts2.views.freemarker.freemarkerresult"/> <result-type name = "httpheader" class = "org.apache.structs2.Dispatcher.httphedererresult"/> <result-type name = "redirect" class = "org.apache.structs2.Dispatcher.ServletReCrectresult"/> <result-type name = "redirectAction" class = "org.apache.structs2.Dispatcher.ServletActionRectresult"/> <result-type name = "stream" class = "org.apache.structs2.Dispatcher.streamResult"/> <result-type name = "velocity" class = "org.apache.struts2.dispatcher.velocityResult"/> <result-type name = "xslt" class = "org.apache.struts2.views.xslt.xsltresult" /> <result-type name = "plainText" class = "org.apache.struts2.Dispatcher.plaintextresult" /> <! Siehe ww-1707-> <result-type name = "redirect-action" class = "org.apache.structs2.Dispatcher.ServletActionRectresult"/> <result-type name = "plaintext" class = "org.apache.struts2.Dispatcher.plaintextresult
Aus dem obigen Code können wir sehen, dass der Ergebnistyp nicht angegeben wird, er wird verwendet.
Einen Ergebniswert definieren,
<result name = "Erfolg" type = "Dispatcher"> <param name = "location">/dankyou.jsp </param> </result>
Da der Standardwert des Typs Dispatcher ist, muss er hier nicht definiert werden. Darüber hinaus ist der Standardwert des Namens Erfolg, sodass es hier nicht definiert werden muss.
Der obige Code kann abgekürzt werden als:
<Eltr ERECTION> <param name = "location">/dankyou.jsp </param> </result>
Darüber hinaus können die Standortparameter auch direkt aus dem Ergebnis -Tag deinstalliert werden. Die einfachste Möglichkeit, den oben genannten Code zu schreiben, ist also:
<Eltr EREMENT> /THANKYOU.JSP </result>
Wir können auch mehrere verschiedene Ergebnisse definieren
<action name = "hello"> <Eltr EREWERN> /hello/result.jsp </result> <result name = "error">/hello/error.jsp </result> <result name = "input">/hello/input.jsp </result> </action>
Die Bedeutung des oben genannten Code ist, dass Aktion mit dem Namen Hello drei Rückgaben hat und alle Dispatcher -Typen (Standardtyp) sind. Die Namen dieser drei Rückgabewerte sind Erfolg (Standardwert), Fehler und Eingabe. Die entsprechenden Seitenpfade sind /hello/result.jsp, /hello/error.jsp und /hello/input.jsp.
Manchmal brauchen wir ein globales Ergebnis definiert. Zu diesem Zeitpunkt können wir beispielsweise ein globales Ergebnis im Paket definieren:
<global-results> <result name = "error">/error.jsp </result> <result name = "Invalid.token">/error.jsp </result> <result name = "login" type = "redirect-action"> logon! Eingabe </result> </global-results>
Dynamisch Ergebnisse zurückgeben
Manchmal wissen wir nur, welches Ergebnis wir zurückkehren sollen, wenn die Aktion die vollständige BI ausführt. Zu diesem Zeitpunkt können wir eine Eigenschaft innerhalb der Aktion definieren, mit der der Ergebniswert speichert wird, nachdem die Aktion die vollständige BI ausgeführt hat, z. B.:
private String NextAction; public String getNextAction () {return NextAction;} In der Konfigurationsdatei von Strutx.xml können wir $ {NextAction} verwenden, um die Eigenschaften in der Aktion zu verweisen und das Ergebnis dynamisch über den durch $ {NextAction} dargelegten Inhalt zurückzugeben, zum Beispiel:
<actionname = "fragment"> <result name = "next" type = "redirect-action"> $ {nextAction} </result> </action> Wenn die Ausführungsmethode der oben genannten Aktion als nächstes zurückgibt, muss auch festgestellt werden, welche Aktion auf der Grundlage der Eigenschaften von NextAction liegt.
Wenn Sie an eine andere Aktion weiterleiten möchten, können Sie Typ = Kette festlegen und das Ergebnis wird nicht zu shtml hinzugefügt.
Das obige ist die detaillierte Erklärung der Struts2 -Ergebnisparameter. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.