Strust 2ファイルダウンロード


ダウンロードをアップロードする機能に出会うたびに、比較的多くの工夫を凝らして再編成する必要がありますが、今日はいっそ自分でよく使う方法をまとめました.
1.JSPページの書き方

2.アクションの書き方
	private String fileName;
	private String dataName;

	public String getFileName() {
		//            
		ServletActionContext.getResponse().setHeader("charset","ISO8859-1");
		try {
			return new String(this.fileName.getBytes(), "ISO8859-1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return "";
		}
	}

	public void setFileName(String fileName) {//               ,                      
		dataName = fileName;
		this.fileName = "test.sql";
	}

	public InputStream getInputStream(){
		String dbName = "java"+dataName;
		ExportMysql ex = new ExportMysql();
		ex.exportMysql("e://", dbName);
		try {
			return new FileInputStream("e://java"+dataName+".sql");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			return null;
		}
	}
	
	public String execute() throws IOException {
		return SUCCESS;
	}
3.struts.xmlファイルの構成
   <action name="fileDownload"
    class="com.test.action.filedown.FileDownloadAction">
    <result name="success" type="stream">
     <!--        ,             ,              :application/octet-stream;charset=ISO8859-1 ,       charset,                ; -->
     <param name="contentType">
     application/octet-stream;charset=ISO8859-1
     </param>
     <param name="contentDisposition">attachment;filename="${filename}"</param>
     <!--                  ,downloadFileName  
        action      getDownloadFileName()          ${downloadFileName},             action              ${}     ,          +action. getDownloadFileName()。 -->
     <param name="inputName">inputStream</param>
     <param name="bufferSize">4096</param>
    </result>
   </action>
基本的なフレームワークはこのようなもので、しばらくはその原理がよく分からないので、ゆっくり熟知してからこの文章を修正してください.軽く撮ってください.