Struts2 文件下载
Struts2文件下载不需要导入其他的包;
实验前先配置下actoin确保jsp页面和struts.xml还有action类之间能连通!
struts2.xml配置:
<package name="download" namespace="/" extends="struts-default">
<action name="download" class="nie.wei.qing.action.DownloadAction">
<!-- 返回类型为Stream -->
<result name="success" type="stream">
<!-- 用来设置HTTP响应里的Content-Type标头 -->
<param name="contentType"> text/plain</param>
< !-- 设置attachment时附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件 -->
<!-- filename 文件下载的名称 -->
<param name="contentDisposition"> attachment;filename="NBA.MP4" </param>
<!-- 一个动作类属性的名字,该属性返回的InputStream对象将被发送到浏览器 -->
<param name="inputName">inputStream</param>
</result>
</action>
</package>
action包里面的DownloadAction类:
public class DownloadAction extends ActionSupport {
//下载文件原始存放路径
private final static String DOWNLOADFILEPATH="/download/k51.mp4";
//文件名参数变量
//从下载文件原始存放路径读取得到文件输出流
public InputStream getInputStream() {
return ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADFILEPATH);
}
public String execute() {
return SUCCESS;
}
}
getInputStream()这个方法是实习下载功能的核心。名字可以随便取只要和Struts.xml文件里的
<param name="inputName">inputStream</param> 里面的值的get方法就可以!
最后警告自己:任何架构的项目先实现配置在实现功能!避免不必要的麻烦!!