黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Struts2文件上傳示例

Struts2文件上傳示例

更新時間:2022-02-10 08:25:45 來源:動力節點 瀏覽964次

Struts 2 文件上傳步驟

開發人員可以按照以下五個步驟創建 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 2 文件上傳動作類

上面 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() 的輔助方法,但我添加了它以允許結果頁面列出當前駐留在上傳文件夾中的所有文件。

Struts 2 文件上傳確認頁面

操作成功調用的目標是 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>

文件上傳Maven依賴

除了標準的 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</版本>
</依賴>

開發人員將這些依賴項添加到項目后,他們可以運行 Struts 2 文件上傳應用程序,并觀察每次用戶單擊文件上傳按鈕時臨時目錄填充資源的情況。如果大家想了解更多相關知識,不妨來關注一下動力節點的Struts2視頻教程,里面的課程內容由淺到深,通俗易懂,即使沒有基礎也可以聽懂,希望對大家的學習能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲欧洲中文日产 | 国产精品日韩专区 | 狠狠欧美 | 婷婷六月丁香色婷婷网 | 色护士精品影院www 色狠狠色综合久久8狠狠色 | 99色99| 日韩在线高清视频 | 99久久免费国产特黄 | 亚洲一级片网站 | 一本大道在线视频 | 欧美精品亚洲精品日韩专区va | 一级毛片免费高清视频 | 51毛片 | 女全身裸无遮挡免费毛片 | 欧美白人最猛性xxxxx | 琪琪色网| 欧美日本道免费一区二区三区 | 九九久久精品视频 | 波多野结衣在线中文字幕 | 久久久免费网站 | 羞羞视频在线免费 | 国产一区二区三区免费在线观看 | 天堂网www在线资源中文 | 色的视频在线观看免费播放 | 中文字幕欧美一区 | 欧美三级大片在线观看 | 亚洲国产成人最新精品资源 | 免费观看黄色片 | 欧美性bbbb| 久久久久久福利 | 天天看片天天爽_免费播放 天天看片夜夜爽 | 日韩亚洲欧美一区 | 亚洲人成一区二区不卡 | 短视频91 | 久久夜夜视频 | 国产午夜三级 | 一级做a爰全过程免费视频毛片 | 国产成人a视频在线观看 | 欧美极品第一页 | 免费高清伧理片午夜伧理片 | 在线精品日韩一区二区三区 |