日期:2014-05-17  浏览次数:20681 次

关于在stucts2里实现文件下载功能,求解?
package com.sanqing.action;

import org.apache.struts2.ServletActionContext;

import com.jspsmart.upload.SmartUpload;

import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.jsp.PageContext;

public class UploadExcelSubject extends ActionSupport {

public String subject() throws Exception {
System.out.println("hhh");
SmartUpload su = new SmartUpload();
PageContext pageContext = ServletActionContext.getPageContext();
su.initialize(pageContext);
// 设定contentDisposition为null以禁止浏览器自动打开文件,
// 保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
// doc时,浏览器将自动用word打开它。扩展名为pdf时,
// 浏览器将用acrobat打开。
su.setContentDisposition(null);
// 下载文件
su.downloadFile("/upload/test.doc");
return null;

}

}
我在action类里是这样配的,这个代码在jsp文件里可以用,可在这里就不行了,我这个就是提供导入文件模板下载,所以只要下载固定的文件就行了,求解释这样为啥不行,su.initialize(pageContext);这句报错
------解决方案--------------------
struts2下载文件挺简单的,只需获取一个InputStream即可,其它配置!
下载文件,也就是一个读写文件的操作!