文档章节

Struts下载或导出文件

依米欧11
 依米欧11
发布于 2017/03/15 11:16
字数 389
阅读 6
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一)定义一个Action类,FileDownload.Java

  1. package com.struts2.filedownload;   
  2. import java.io.InputStream;    
  3. import org.apache.struts2.ServletActionContext;   
  4. import com.opensymphony.xwork2.ActionSupport;  
  5. //文件下载  
  6. public class FileDownload extends ActionSupport{        
  7.     private int number ;  
  8.     private String fileName;  
  9.     public int getNumber() {  
  10.         return number;  
  11.     }   
  12.     public void setNumber(int number) {  
  13.         this.number = number;  
  14.     }        
  15.     public String getFileName() {  
  16.         return fileName;  
  17.     }  
  18.     public void setFileName(String fileName) {  
  19.         this.fileName = fileName;  
  20.     }  
  21.     //返回一个输入流,作为一个客户端来说是一个输入流,但对于服务器端是一个 输出流  
  22.     public InputStream getDownloadFile() throws Exception  
  23.     {  
  24.         if(1 == number)  
  25.         {  
  26.            this.fileName = "Dream.jpg" ;  
  27.            //获取资源路径  
  28.            return ServletActionContext.getServletContext().getResourceAsStream("upload/Dream.jpg") ;  
  29.         }  
  30.         else if(2 == number)  
  31.         {  
  32.             this.fileName = "jd2chm源码生成chm格式文档.rar" ;  
  33.             //解解乱码  
  34.             this.fileName = new String(this.fileName.getBytes("GBK"),"ISO-8859-1");  
  35.             return ServletActionContext.getServletContext().getResourceAsStream("upload/jd2chm源码生成chm格式文档.rar") ;  
  36.         }  
  37.         else  
  38.            return null ;  
  39.     }     
  40.     @Override  
  41.     public String execute() throws Exception {  
  42.           
  43.         return SUCCESS;  
  44.     }  
  45.   
  46. }  
  47. 二)在struts.xml文件中配置相关信息
  48. <struts>        
  49.    <package name="struts2" extends="struts-default">        
  50.        <action name="FileDownload" class="com.struts2.filedownload.FileDownload">  
  51.            <result name="success" type="stream">  
  52.                <param name="contentType">text/plain</param>  
  53.                <param name="contentDisposition">attachment;fileName="${fileName}"</param>  
  54.                <param name="inputName">downloadFile</param>  
  55.                <param name="bufferSize">1024</param>  
  56.            </result>  
  57.        </action>  
  58.      
  59.    </package>   
  60. </struts>  
  61. 1.结果类型必须要写成type="stream",与之对应的处理类是 org.apache.struts2.dispatcher.StreamResult
  62. 2.涉及到的参数:

    3.

    1)  <param name="contentDisposition">attachment;fileName="${fileName}"</param>

         contentDisposition默认是 inline(内联的), 比如说下载的文件是文本类型的,就直接在网页上打开,不能直接打开的才会打开下载框自己选择

    2)  attachment :下载时会打开下载框

    3)  fileName="${fileName}" :在这定义的名字是一个动态的,该名字是显示在下载框上的文件名字

    4.<param name="inputName">downloadFile</param>,这个downloadFile名字要和FileDownload.java类中的getDownloadFile()方法名去掉get 一致

本文转载自:http://blog.csdn.net/hzc543806053/article/details/7538723

依米欧11
粉丝 0
博文 3
码字总数 449
作品 0
广州
程序员
私信 提问
关于xml文件的声明代码导致的tomcat出现的错误

在struts的配置文件中,大多数都是使用xml文件定义的,而且每个xml文件的开头都是使用特定标记来声明的。 如:<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts...

smh821025
2013/02/09
34
0
struts-2.3.16开发环境搭建

一、拷jar包 最小jar包要求(the minimal required Struts 2 framework Jar files): struts2-core-2.3.16.jarxwork-core-2.3.16.jarcommons-logging-1.1.3.jarognl-3.0.6.jarcommons-fileu......

techsboy
2014/04/22
13
0
Struts 2.2.1 发布,重要的安全补丁

Struts 的上一次更新是 2008 年的 12 月,至今已有一年多了。今天 Struts 发布了 2.2.1 稳定版本,包含了很多重要的安全补丁,建议所有使用 Struts 2.2 的用户升级到该版本。 发行说明请看:...

红薯
2010/08/16
3K
6
Struts 源码学习之ActionServlet ( 一)

Struts 源码最新版本为 struts-1.3.8-src.zip ( 12-Mar-2007 00:06 ) 学习笔记使用struts-1.3.5-src.zip 的源码, 下载地址:http://archive.apache.org/dist/struts/source/ 1. 在web.x......

xiahuawuyu
2012/05/17
138
0
常用的 default.properties 文件 + 常用的 struts-default.xml 文件 + 常用的 struts-plugin.xml 文件 + 常用的 struts.xml 文件 + 常用的 struts.properties文件 + 常用的 web.xml 文件

常用的 default.properties 文件,所在位置:struts-2.3.15.3-allstruts-2.3.15.3appsstruts2-blankWEB-INFlibstruts2-core-2.3.15.3.jarorgapachestruts2default.properties $Id: default.p......

黑泽明军
2018/06/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

是否有内置功能可以打印对象的所有当前属性和值?

所以我在这里寻找的是类似PHP的print_r函数。 这样一来,我可以通过查看问题对象的状态来调试脚本。 #1楼 可能值得一看- 是否有与Perl的Data :: Dumper等效的Python? 我的建议是 https://gi...

技术盛宴
19分钟前
5
0
直击面试,聊聊 GC 机制

前言 文章来源:https://studyidea.cn/ GC 中文直译垃圾回收,是一种回收内存空间避免内存泄漏的机制。当 JVM 内存紧张,通过执行 GC 有效回收内存,转而分配给新对象从而实现内存的再利用。 ...

程序通事
21分钟前
4
0
Mybatis where 1=1 和 标签

在mybatis中拼接查询语句,偶尔会出现where后面可能一个字段的值都没有,就导致所有条件无效,导致where没有存在的意义;但也有可能这些条件会存在。那解决这个问题的方法,最常见的就是: ...

观海562
23分钟前
4
0
git常用初始化设置

日志编辑工具 git config --global core.editor vim ssh访问 cd /home/weiguangyue/.sshssh-keygen -t rsa -C weiyue888999@126.com 提交者信息用户名 git config --global user.nam......

萧默
24分钟前
4
0
面试题-关于Java线程池一篇文章就够了

在Java面试中,线程池相关知识,虽不能说是必问提,但出现的频次也是非常高的。同时又鉴于公众号“程序新视界”的读者后台留言让写一篇关于Java线程池的文章,于是就有本篇内容,本篇将基于J...

程序新视界
28分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部