码迷,mamicode.com
首页 > 其他好文 > 详细

struts提供下载功能

时间:2020-07-03 23:43:55      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:apach   web   file   添加   struts   文件下载   对象   --   dac   

1)创建下载页面

在 struts2Demo06 项目的 WebContent 目录下创建一个名称为 download.jsp 的页面文件,在文件中添加一个用于文件下载的链接,其主要代码如下所示:

<s:a href="simpledownload?filename=test.txt" name="test">test.txt</s:a>

2)创建 Action

在 com.mengma.action 包中新建一个名称为 SimpleDownLoadAction 的类,该类主要用于处理文件下载的核心操作,其代码如下所示。

package com.mengma.action;

import java.io.InputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class SimpleDownLoadAction extends ActionSupport {
private String filename;

public String getFilename() {
  return filename;
}

public void setFilename(String filename) {
  this.filename = filename;
}

// 定义了返回InputStream的方法,该方法作为被下载文件的入口
public InputStream getDownloadFile() {
  // 获取下载文件名称
  String filename = ServletActionContext.getRequest().getParameter(
    "filename");
  // 定义下载文件路径
  String filePath = "/upload/" + filename;
  // 返回一个流对象
  return ServletActionContext.getServletContext().getResourceAsStream(
    filePath);
}

}

3)编写配置文件信息

在 struts.xml 中增加 action 的配置,其代码如下所示:

<action name="simpledownload" class="com.mengma.action.SimpleDownLoadAction">
    <result type="stream">
        <!--文件类型 -->
        <param name="contentType">text/plain</param>
        <!--指定文件名 -->
        <param name="contentDisposition">
            attachment;filename=${filename}
        </param>
        <!--输入流 -->
        <param name="inputName">downloadFile</param>
    </result>
</action>

在上述配置代码中,分别通过 stream 结果类型的属性设置了所要下载文件的类型、名称和输入流。其中 ${filename} 表示在项目运行时,将 action 中的 filename 属性动态地填充在 ${} 中间部分,这样就可以动态地获取所要下载的文件名称。

 

struts提供下载功能

标签:apach   web   file   添加   struts   文件下载   对象   --   dac   

原文地址:https://www.cnblogs.com/hkMblogs/p/13232971.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!