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

專注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視頻教程,里面的課程內容由淺到深,通俗易懂,即使沒有基礎也可以聽懂,希望對大家的學習能夠有所幫助。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美日韩a | 免费黄色片在线 | 黄色特级网站 | 2018天天干夜夜操 | 97影院理论在线观看 | 日韩精品一二三区 | 一级一片一_级一片一 | 久久精选视频 | 香蕉精品一本大道在线观看 | 男女午夜爽爽大片免费 | 欧美成人家庭影院 | 97理论三级九七午夜在线观看 | 韩国伦理片在线观看 | 欧美在线区 | 日韩一区二区三区视频在线观看 | 日本中文字幕网 | 国产成在线观看免费视频成本人 | 日本中文字幕永久在线 | 日本一本在线播放 | 国产特黄特色的大片观看免费视频 | 亚洲视频在线观看不卡 | 久久久久久久久网站 | 又黄又爽一线毛片免费观看 | 一个人看的www的视频免费 | 亚洲日本视频在线 | 久久亚洲综合色 | 日韩精品a在线视频 | 午夜手机视频 | 亚洲日本va午夜中文字幕一区 | h片免费网站 | 极品精品国产超清自在线观看 | 色播影院性播影院私人影院 | 亚洲欧美综合日韩字幕v在线 | 免费中文字幕在线观看 | 99精品国产综合久久久久 | 桃花岛亚洲精品tv自拍网站 | 欧美在线视频免费观看 | 免费特级黄毛片在线成人观看 | 国产在线日韩 | 欧美一区二区三区四区在线观看 | 日韩亚洲一区中文字幕 |