您好,登錄后才能下訂單哦!
今天小編給大家分享一下Struts2文件如何上傳的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
開發人員可以按照以下五個步驟創建 Struts 2 文件上傳應用程序:
將所需的 commons-fileupload 和 commons-io 依賴項添加到Java Web 項目;
創建一個使用 Apache Struts 表單和文件自定義標簽的 JSP;
使用映射到文件名的設置器編寫一個 Struts 動作類,如表單的指定 s:file 標記;
在Struts動作類的execute方法中,使用標準Java IO包保存上傳的文件;和
創建一個成功的 JSP,通知用戶文件已成功上載。
包含創建HTML表單元素的特殊 Struts 標記的 JSP是 Apache 框架文件上傳功能的關鍵。一個典型的 Struts 上傳表單如下所示:
<%@ taglib prefix ="s" uri ="/struts-tags"%> <%@ page contentType ="text/html; charset =UTF-8"%> <html><正文> <s:form action =" fileupload " method ="post" enctype ="multipart/form-data"> <s:file name=" uploadFile " label ="File" /> <s:submit /> </s:form></body> </html>
從一個 Struts 文件上傳表單到下一個,post 類型的方法和 mutlipart/form-data 的 enctype 將保持不變。action 屬性必須映射到處理服務器上的請求的 Struts 操作類的映射名稱,并且文件名必須映射到該操作類中聲明的屬性。
屬性正確映射后,下一步就是編寫相應的動作類。
上面 Struts上傳表單中的文件名是uploadFile 。因此,支持這種形式的動作類必須有一個名為 setUploadedFile 的 setter 方法,它接受一個 java.io.File 對象作為參數,并且它還必須有一個名為 setUploadedFileFileName 的 setter 方法,它接受一個 String作為參數。Struts 框架會將上傳的文件及其名稱傳遞給這些方法,但開發人員應注意在動作中聲明的屬性不必精確映射到設置器名稱這一事實。
包 com.mcnz.struts; 導入java.io.*; 導入 java.util.*; 導入 java.util.stream.*; 導入 org.apache.commons.io.*; 導入 org.apache.struts2.convention.annotation.*; 導入 com.opensymphony.xwork2.ActionSupport;@Action ("/fileupload") @Result (name = "success", location = "/results.jsp") 公共類 FileUploadAction 擴展 ActionSupport { 私有文件上傳文件; 私有字符串上傳文件名; 私有字符串 localDirectory = "C:\\temp"; 公共無效setUploadedFile(文件文件){ 上傳文件 = 文件; } 公共無效 setUploadedFileFileName(字符串名稱){ 上傳文件名 = 名稱; } 公共字符串執行()拋出異常{ 文件本地文件=新文件(本地目錄,上傳文件名); FileUtils.copyFile(uploadedFile, localFile); 返回成功; } /* 用于獲取 JSP 顯示的文件列表。*/ public Set<String> getFileList() { return Stream.of(new File(localDirectory).listFiles()) .filter(file -> !file.isDirectory()) .map(File::getName) .collect(Collectors.設置()); } }
在上述動作類中,execute 方法獲取上傳的文件并將其保存到 C:\temp 文件夾。
不需要名為 getFileList() 的輔助方法,但我添加了它以允許結果頁面列出當前駐留在上傳文件夾中的所有文件。
操作成功調用的目標是 results.jsp。開發人員不需要使這個頁面過于復雜。在調用此頁面進行渲染時,文件將已成功上傳。這是一個滿足當前用例的簡單 results.jsp:
<%@ taglib prefix="s" uri="/struts-tags"%><%@ page contentType="text/html; charset=UTF-8"%><html><正文><p> <s:property value="uploadedFileName"/> 上傳成功。</p></正文></html>
除了標準的 Struts 庫之外,文件上傳實用程序還需要 commons-io 和 commons-fileupload 工具。開發人員需要將以下Maven依賴項添加到您的應用程序中,以使 Struts 2 文件上傳工具正常工作:
<依賴> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <版本>1.2.1</版本></依賴><依賴> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <版本>1.3.2</版本></依賴>
以上就是“Struts2文件如何上傳”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。