Struts2 文件下载
2019-12-27 16:05:16来源:博客园 阅读 ()
Struts2 文件下载
jsp
<body> <a href="DownloadAction?fileName=荷花.txt">下载文档</a> <br /> <a href="DownloadAction?fileName=荷花.jpg">下载图片</a> <br /> </body>
fileName带文件名后缀。
action
public class DownloadAction extends ActionSupport { private String fileName; public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public InputStream getInputStream(){ return ServletActionContext.getServletContext().getResourceAsStream("resource/" + fileName); } @Override public String execute() throws Exception { return SUCCESS; } }
- 一个String类型的成员变量表示文件名,并提供对应的getter、setter方法
- 一个获取输入流的方法,返回该文件的输入流。也可以写成 new FileInputStream() 。
- 一个要调用的方法
struts.xml
<action name="DownloadAction" class="action.DownloadAction"> <result name="success" type="stream"> <!-- 指定action中获取输入流的方法,getInputStream,约定:去掉get,后面部分转化为camel写法 --> <param name="inputName">inputStream</param> <!-- 设置浏览器对此stream(输入流)的处理方式:保存为文件,filename指定文件名 --> <param name="contentDisposition">attachment;filename=${fileName}</param> <!-- 设置缓冲大小,默认单位字节 --> <param name="bufferSize">4096</param> <!-- 解决中文文件名出错 --> <param name="encode">true</param> </result> </action>
流程分析
- 浏览器向服务器发送请求,将fileName传递给action
- JVM创建action实例,并调用action的setFileName()将浏览器传过来的文件名赋给成员变量fileName,完成成员变量的初始化
- JVM调用action的execute()来处理浏览器的请求,返回SUCCESS,JVM根据struts.xml中的配置,向浏览器返回一个输入流,并告知浏览器将此输入流的数据保存为指定文件。
原文链接:https://www.cnblogs.com/chy18883701161/p/12109531.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Struts2 为什么被淘汰?自己作死! 2020-05-14
- 文件下载——下载Excel 2020-05-12
- 【问题管理】-- Struts2配置struts.xml中Action访问报There 2020-04-17
- 【java框架】Struts2(2) -- Struts2配置 2020-04-13
- struts1与struts2的区别 2020-03-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash