struts 2は簡単なファイルのダウンロード機能を実現します。


Struts 2はstream結果のタイプを提供しています。この結果のタイプはファイルダウンロード機能をサポートするために専用です。streamタイプを設定した結果、以下の4つの属性を指定する必要があります。
contentType:ダウンロードされたファイルの種類を指定します。
inputName:ダウンロードされたファイルの入り口入力ストリームを指定します。
content Displation:ダウンロードのファイル名を指定します。
ファイルをダウンロードする際のバッファサイズを指定します。 
struts 2ファイルのダウンロード例:
1.ファイルのダウンロードを処理するアクション:

/**
 * Description:Struts2      
 * Author: Eleven
 * Date: 2018/1/24 10:39
 */
public class FileAction extends ActionSupport{

  //        struts.xml inputName  ,     get  
  private InputStream targetFile;

  //    
  public String download(){
    //          ,         
    String path = "/WEB-INF/images/lib.zip";
    //  getResourceAsStream()             
    targetFile = ServletActionContext.getServletContext().getResourceAsStream(path);
    return SUCCESS;
  }

  //  get  
  public InputStream getTargetFile() {
    return targetFile;
  }
}

ファイルをダウンロードするには、まずダウンロードされたファイルのリソースが必要です。ここではプロジェクトのWEB-INF/imagsのパスの下にダウンロードされます。自分の需要に応じて、ServletConteextから提供されたgetsResource Astream()方法で指定されたファイルの入力フローに戻ります。 
2.struts.xmlの配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
  <constant name="struts.enable.DynamicMethodInvocation" value="false" />
  <constant name="struts.devMode" value="true" />

  <package name="default" namespace="/" extends="struts-default">

    <action name="file_*" class="eleven.action.FileAction" method="{1}">
      <!--    -->
      <!--       stream   -->
      <result type="stream">
        <!--           -->
        <param name="contentType">application/zip</param><!--image/jpg-->
        <!--  action         InputStream   -->
        <param name="inputName">targetFile</param>
        <param name="contentDisposition">filename="aaa.zip"</param>
        <!--           -->
        <param name="bufferSize">4096</param>
      </result>
    </action>

  </package>

</struts>

ブラウザのアドレスバーに該当するファイルダウンロードのアクセス経路を入力してください。http://localhost:8080/demo/file_ダウンロードのように、ファイルをダウンロードできます。\
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。