struts 2は簡単なファイルのダウンロード機能を実現します。
2878 ワード
Struts 2はstream結果のタイプを提供しています。この結果のタイプはファイルダウンロード機能をサポートするために専用です。streamタイプを設定した結果、以下の4つの属性を指定する必要があります。
contentType:ダウンロードされたファイルの種類を指定します。
inputName:ダウンロードされたファイルの入り口入力ストリームを指定します。
content Displation:ダウンロードのファイル名を指定します。
ファイルをダウンロードする際のバッファサイズを指定します。
struts 2ファイルのダウンロード例:
1.ファイルのダウンロードを処理するアクション:
2.struts.xmlの配置
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
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_ダウンロードのように、ファイルをダウンロードできます。\以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。