打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Struts中DownloadAction

E-MAIL:i@openwudi.com

DownloadAction

这个类最大限度的减少了文件下载操作代码量,用起来也很简单。写一个类并且继承DownloadAction,重写getStreamInfo方法。由于此方法需要返回一个DownloadAction.StreamInfo类型的,并且DownloadAction.StreamInfo是一个接口,我们需要返回一个DownloadAction.StreamInfo接口的实现类。

Struts提供了2个实现类DownloadAction.FileStreamInfo, DownloadAction.ResourceStreamInfo 具体区别我就不阐述了,它们都可以得到文件流。

以下是范例代码:

----------------------------不算华丽的分割线-----------------------------------------

package cn.iego.wudi.strutsdemo.user.web.struts.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DownloadAction;

public class WudiDownload extends DownloadAction {

    @Override
    protected StreamInfo getStreamInfo(ActionMapping arg0, ActionForm arg1,
            HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
        return new DownloadAction.ResourceStreamInfo("application/zip", this.getServlet().getServletContext(), "/WEB-INF/a.zip");
    }
   
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        response.setHeader("Content-Disposition", "attachment;filename=w.zip");
        return super.execute(mapping, form, request, response);
    }

}

----------------------------不算华丽的分割线-----------------------------------------

重写execute方法设置请求头为附件格式

把这个Action加入到struts-config.xml中,大功告成。

<action path="/wudiDown" type="cn.iego.wudi.strutsdemo.user.web.struts.actions.WudiDownload"></action>

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
struct加Ajax (3)
享受JAVA的空气: Struts学习笔记(二)
《简述培训的流程》
【大学课程设计第二篇】基于SSH框架的人力资源管理系统设计与实现
Struts第3天补充
web中使用POI导入导出EXCEL文件的例子
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服