通过《Struts2文件下载简介》教程的学习,读者已经了解了使用 Struts2 框架实现在指定的目录中下载指定文件的功能。下面通过案例演示文件下载功能。

1)创建下载页面

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

test.txt

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 的配置,其代码如下所示:

text/plain

attachment;filename=${filename}

downloadFile

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

4)运行项目并查看结果

启动项目后,在浏览器的地址栏中输入地址 http://localhost:8080/struts2Demo06/download.jsp,即可显示如图 1 所示的页面。

图 1  下载页面

单击下载页面的超链接后,浏览器的显示结果如图 2 所示。

图 2  上传页面

java struts 文件下载_Struts2文件下载实例相关推荐

  1. java下载pdf_java实现文件下载..pdf

    java实现文件下载. 在 BlogJava上已经有一位作者阐述了文件上传的问题, 地址是在 Struts 2中实现文件上传 , 因此我就不再讨论那个话题了.我今天简单介绍一下 Struts 2的文件 ...

  2. java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误

    我正在开发一个Spring MVC应用程序,用户可以在其中下载文件.用户可以点击触发下载机制的附件.Spring,Java:流式文件下载以避免内存不足错误 昨天,当该多个下载和两个具有约2 GB的文件 ...

  3. JAVA中的通用文件下载接口

    本文记录下JAVA中的通用文件下载接口,每次都上网找,挺麻烦的. 文章目录 概述 概述 /*** 通用下载请求** @param filePathName 文件路径*/@GetMapping(&quo ...

  4. Java后台Controller实现文件下载操作

    代码 参数: 1.filePath:文件的绝对路径(d:\download\a.xlsx) 2.fileName(a.xlsx) 3.编码格式(GBK) 4.response.request不介绍了, ...

  5. java后台实现excel文件下载功能

    java后台实现excel文件下载功能  java中对于excel文件的操作,有读取,写入,上传等功能,在对excel文件进行操作时,为了让使用者更加直观的制作excel数据,必然会有下载模板exce ...

  6. java文件下载文件损坏_Springboot实现文件下载,文件下载后损坏

    场景描述 使用Springboot实现了一个文件下载的功能,代码如下 String fileName = "template.xls"; res.setHeader("C ...

  7. java struts 读取文件,java中Struts2 的文件上传和下载示例

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  8. java多附件上传 实例demo

    java多附件上传 实例demo <%@ page language="java" import="java.util.*" pageEncoding=& ...

  9. .Net/C# 与 J2EE/Java Web Service 互操作完整实例

    http://www.cnblogs.com/Microshaoft/archive/2005/08/18/217213.html .Net 与 J2EE/Java Web Service 互操作完整 ...

最新文章

  1. layui 数字步进器_图解全新奔驰S级:从“传统豪华”向“数字豪华”转型
  2. 7-2 整除分块 (15 分)
  3. python Supervisor
  4. java 上文件传示例_Java解压缩文件示例
  5. quartz配置详解
  6. 遥感图像处理 | 辐射校正
  7. 把Alexa工具条改装成木马
  8. ICD3 - Cannot connect to USB device. Unrecognized endpoint.
  9. matlab 交互效应三维图,【MATLAB】使用MATLAB绘制心理学中的交互作用图
  10. element-ui校验表单只能输入数字
  11. Unity3d+C#斗地主学习探究1
  12. 数据分析学习总结笔记01:情感分析
  13. 嘉兴 机器人仓库 菜鸟_今天,菜鸟上线中国最大机器人仓库
  14. mac 下使用ssh
  15. java oracle 时间查询_Oracle 日期查询
  16. IOS上传app store审核截图规格要求
  17. 升级主板和CPU后OpenGL初始化失败问题的解决
  18. selenium新浪邮箱注册句柄切换实战
  19. javascript代码前端debug调试方法
  20. 最近老是卖了就涨 买了就跌呢

热门文章

  1. .NET Core微服务之路:基于Ocelot的API网关实现--http/https协议篇
  2. KubeCon+CloudNativeCon首秀中国!
  3. 20周年献礼:Visual Studio 2017正式版3月7日发布
  4. ASP.NET Core服务器综述
  5. mysql主外键引用关系,关于mysql:数据主/外键关系
  6. 【地理建模】空间统计分析:空间权重矩阵、全局空间自相关、局部空间自相关
  7. 【经典回放】多种语言系列数据结构算法:堆排序
  8. C# Color颜色对照表
  9. C++语言打印汉字表
  10. C/C++之内存对齐