Struts2中文件下载实现通过result type="stream"的方式
找到官方帮助文档:struts2/struts-2.2.1/docs/WW/stream-result.html
写的非常清楚,action有什么要配置,可以用XML,可以用实例变量.
xml方式参考官方Examples
我就贴JAVA方式,SETTER,GETTER实现忽略~~工具生成~~
private String contentType; private long contentLength; private String contentDispostion; private InputStream inputStream; @Override public String execute() throws Exception { contentType = "image/jpeg"; contentDispostion = "attachment;filename=example.jpg"; ServletContext servletContext = ServletActionContext.getServletContext(); String filePath = servletContext.getRealPath("/files/example.jpg"); inputStream = new FileInputStream(filePath); contentLength = inputStream.available(); return SUCCESS; }
!!!!!个人觉得比较有意思的:
Struts2的下载链接不像其他的是一个文件结尾
它是请求一个action,然后返回视图,可见是有多灵活!!!<a href="testDownload">Download</a>