Dieser Artikel hat Ihnen die Datei -Download -Funktion unter Struts2 für Ihre Referenz geteilt. Der spezifische Inhalt ist wie folgt
Hier ist ein Beispiel für die Implementierung einer Image -Download -Funktion:
1. Projektstruktur
2. Web.xml
<? XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-App-app-app-app-app-aapp_3_0.0.xsd"> <; <Filter-name> Streben 2 </filter-name> <filterklasse> org.apache.struts2.dispatcher.ng.filter.strutsprepareAndexecuteFilter </Filterklasse> </Filter> <Filter-Mapping> </Filter-Strümpfe 2 </Filter-name> <urlpattern> </Filter-name> <urlpattern> </filter-mapping> <!-Einstellungen Willkommensseite-> <Welcome-File-List> <Welcome-File> Index.jsp </Welcome-File> </Welcome-File-List> <!-Session-Timeout-Definition, Einheit in Minuten-> <Session-config> <Session-Timeout> 30 </Session-Timeout> </Session-CONFIG> </Web-App> </web-App> </web-App> </web-App>
3.DownloadAction.java
Paket com.Action; importieren java.io.inputstream; import org.apache.struts2.servletactioncontext; import com.opensymphony.xwork2.actionsupport; Die DownloadAktion der öffentlichen Klasse erweitert die AktionSverpackung {private statische endgültige lange Serialversionuid = 1L; // Datei Pfad privater String -Pfad; // Getter -Methode des Pfadattributs öffentlich String getPath () {return path; } // Setter -Methode des Pfadattributs public void setPath (String -Pfad) {this.path = path; } // InputStream zurückgeben, Schlüsselmethode zum Herunterladen von Dateien public java.io.inputStream getdownloadFile () löst Ausnahme aus {InputStream in = ServletActionContext.getServletContext (). GetResourceAsStream (getPath ()); zurück in; } public String execute () löst Ausnahme aus {return Erfolg; }}4.struts.xml
<? name = "struts.i18n.encoding" value = "utf-8" /> <!-Konfigurieren Sie die maximale Kapazität von hochgeladenen Dateien, Struts2 ist standardmäßig 2 m. Das Gerät ist 1B, 1KB = 1024B, 1M = 1024 KB, 1M = 1024*1024B-> <Konstant Name = "Struts.multipart.maxSize" Value = "1048576" /> <!-Konfigurieren Sie das Paket in dieser Anwendung und erben Sie das Strümpfungs-Default-Paket-> <paketname = "Ermutigungen" /" /" /" /" /" /" /" /". Extends = "Struts-Default"> <Action name = "download"> <!-Setzen Sie die Parameter des Dateipfads und geben Sie sie an die Aktionsklassendatei weiter-> <!-<param name = "path">/download/a.jpg </param>-> <!-Datatyp-Definition, dh Definition als "Stream"-> <resulting name = "Erfolg". name = "contentType"> Image/JPEG </param> <!-Download-Dateiverarbeitungsmethode-> <param name = "contentDisposition"> <!-Anhang bedeutet Anhang, dh das Dialogfenster speichern, das während des Downloads geöffnet wird, und der Dateiname repräsentiert den Dateinamen, der während des Downloads> <! oder inline schreiben; Dies bedeutet, dass Sie versuchen, die heruntergeladene Datei im Browser zu öffnen, anstatt-> Anhänge; Dateiname = "A.JPG" </param> <!-Download-Dateiausgabe-Stream-Definition-> <!-Der Wert, der dem Eingabenname-Element entspricht, lautet DownloadFile. In der Aktion müssen Sie über die entsprechende getdownloadFile () -Methode-> <param name = "inputName"> downloadFile </param> <!-Puffergröße-> <param name = "bufferSize"> 1024 </param> </result> </action> </paket> </stolzs> haben, haben.
5.Index.jsp
<%@ page Language = "java" import = "java.util. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <! DocType html public "-// w3c // dtd html 4.01 transitional // ede href = "download.action? path = < %=" rel = "external nofollow" ./download/a.jpg " %>"> download </a> </center> </body> </html>
6. Dateipfad
Das Download -Verzeichnis sollte im Voraus im Projekt erstellt werden, und es sollte eine A.JPG -Datei darin enthalten sein, andernfalls schlägt der Download fehl.
7. Funktionales Portal
Nachdem das Projekt auf dem Server veröffentlicht wurde, greifen Sie im Projekt mit dem Browser auf den Index.jsp zu, klicken Sie auf den Download -Link und das Dialogfeld "Download" wird angezeigt.