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

Struts2笔记——11.文件下载

时间:2015-08-21 00:24:20      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:struts2 web开发 架构 计算机 文件下载

Struts2提供了stream结果类型,是专门用于支持文件下载功能的。


实现文件下载的action类

这个类与普通action实现类的唯一区别就是,这个action类需要提供一个返回InputStream的方法。该方法是被下载文件的入口。代码如下。如果想要实现控制下载等一系列其他的功能,只需要在execute方法中实现即可。

public class download extends ActionSupport {
	private String inputPath;

	public String getInputPath() {
		return inputPath;
	}

	public void setInputPath(String inputPath) {
		this.inputPath = inputPath;
	}

	public InputStream getTargetFile() throws Exception {

		return ServletActionContext.getServletContext().getResourceAsStream(
				inputPath);
	}

	@Override
	public String execute() throws Exception {

		return SUCCESS;
	}

}

----------------------------------------------------------------------------------------------------------------

下面来看在xml中的配置代码。

<action name="download" class="com.cm.actions.download">
	<param name="inputPath">/WEB-INF/aa.txt</param>
	
	<result name="success"  type="stream">
	<param name="contentType">text/plain</param>
	<param name="inputName">targetFile</param>
	<param name="contentDisposition">attachment;filename="aa.txt"</param>
	<param name="bufferSize">4096</param>
	</result>	
</action>

这里的action就是处理下载按钮的action。inputPath就是文件所在的路径,而返回的结果不再是视图,而是一个流。里面能够规定contentType。inputName则是aciton方法中的返回inputStream的方法的名字。在contentDisposition参数中,如果写了attachment,则是以下载的形式呈现,如果不写,则只是在页面中呈现出来。filename是 下载的时候显示的文件名,可以自定义。

本文出自 “指尖轻飞” 博客,谢绝转载!

Struts2笔记——11.文件下载

标签:struts2 web开发 架构 计算机 文件下载

原文地址:http://mengcao.blog.51cto.com/9395052/1686679

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