在struts.xml中配置如下

         <action name="download" class="cn.itcast.domain.User" method="download">
<result type="stream" name="success">
<param name="contentType">application/octet-stream</param>
<param name="inputStream">inputStream</param><!-- 输入是对应的动作类中的那个字段 -->
<param name="contentDisposition">attachment;filename=${filename}</param><!-- 要下载的文件名 -->
</result>

jsp页面中

user为action中传来的

           <c:url value="/user/download" var="url">
<c:param name="path" value="${user.path}"></c:param>
<c:param name="filename" value="${user.filename}"></c:param>
</c:url>
<a href="${url}">下载</a>

在User.java中

class User{
private String path; //文件保存的路径
private String filename; //文件名
//文件下载 固定名字
private InputStream inputStream;
public InputStream getInputStream() {
return inputStream;
}
public void setInputStream(InputStream inputStream) {
this.inputStream = inputStream;
} public String download()
{
String storePath=ServletActionContext.getServletContext().getRealPath("/files");
System.out.println("before" +path +" "+ filename);
        //事实证明struts2中处理了相关参数, 并且通过url传输传给 path, filename中的值
// path=ServletActionContext.getRequest().getParameter("path");
// filename=ServletActionContext.getRequest().getParameter("filename");
System.out.println("after" +path +" "+ filename);
try {
inputStream=new FileInputStream(storePath+"\\"+path+"\\"+filename);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return this.SUCCESS;
}
}

Struts2中文件下载的更多相关文章

  1. struts2中的文件上传,文件下载

    文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交 ...

  2. 4.struts2中的文件上传,下载

    Struts2中文件的上传下载,是借用commons里面的包实现文件的上传,需要导入两个jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar 实现 ...

  3. struts2中struts.xml配置文件详解【未整理】

    1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...

  4. Struts2 中result type属性说明

    Struts2 中result type属性说明 首先看一下在struts-default.xml中对于result-type的定义: <result-types><result-t ...

  5. struts2中的结果视图类型

    实际上在Struts2框架中,一个完整的结果视图配置文件应该是: <action name="Action名称" class="Action类路径" me ...

  6. struts2中struts.xml配置文件详解

    struts.xml的常用配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...

  7. 基于 Struts2 的文件下载

    介于上篇我们讲述了基于 Struts2 的单文件和多文件上传,这篇我们来聊一聊基于 Struts2 的文件下载. 1.导 jar 包 commons-io-2.0.1.jar struts2-core ...

  8. Struts2中的页面跳转

    内容源自:Struts2中的页面跳转 一.全局页面的设置如果<package>包中的一些action都返回success,并且返回的页面都是同一个JSP页面,这样就可以配置全局的结果页面. ...

  9. Struts2笔记--文件下载

    Struts2提供了stream结果类型,该结果类型是专门用于支持文件下载功能的.配置stream类型的结果需要指定以下4个属性. contentType:指定被下载文件的文件类型 inputName ...

随机推荐

  1. [JSOI2017]原力(分块+map(hash))

    题目描述 一个原力网络可以看成是一个可能存在重边但没有自环的无向图.每条边有一种属性和一个权值.属性可能是R.G.B三种当中的一种,代表这条边上 原力的类型.权值是一个正整数,代表这条边上的原力强度. ...

  2. [USACO 2017 Dec Gold] Tutorial

    Link: USACO 2017 Dec Gold 传送门 A: 为了保证复杂度明显是从终结点往回退 结果一开始全在想优化建边$dfs$……其实可以不用建边直接$multiset$找可行边跑$bfs$ ...

  3. [Atcoder Regular Contest 061] Tutorial

    Link: ARC061 传送门 C: 暴力$dfs$就好了 #include <bits/stdc++.h> using namespace std; typedef long long ...

  4. hdu 4489 The King’s Ups and Downs(基础dp)

    The King’s Ups and Downs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  5. 【枚举】【高斯消元】Gym - 101412D - Find the Outlier

    给你一个未知的d次多项式在0,1,...,d+2处的取值,其中有且只有一个是错的,问你哪个是错的. 枚举哪个是错的,再在剩下的d+2个中取d+1个高斯消元,解出多项式系数,然后代一下最后剩下的那个数看 ...

  6. Deep TEN: Texture Encoding Network

    纹理特征,材料分类(Material Classification),在MINC-2500.Flickr Material Database.KTH-TIPS-2b.4D-Light-Field-Ma ...

  7. poj 1654:Area 区域 ---- 叉积(求多边形面积)

    Area   Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19398   Accepted: 5311 利用叉积求多边形面 ...

  8. 掌握Linux编程的10个步骤

    Linux 编程经典书籍推荐 Denis 2008年10月17日 浏览:84168 成为一名精通 Linux 程序设计的高级程序员一直是不少朋友孜孜以求的目标.根据中华英才网统计数据,北京地区 Lin ...

  9. WindowsServices_无法拷贝文件到服务器

    方法一:驱动器勾选   方法二:rdpclip.exe进程 1.现在进程管理中结束所有的rdpclip.exe进程 2.在运行中执行 rdpclip.exe接口    

  10. SIP消息类型和消息格式

    转自:http://blog.chinaunix.net/uid-1797566-id-2840904.html sip消息类型和消息格式 SIP是一个基于文本的协议,使用的是UTF-8字符集. SI ...