===================jsp 页面 中的js代码================================
//点击某下载按钮调用该方法,参数根据自己的实际情况而定
function download(){
var tableParam = param + "&sortId="+ sortId +"&sortState="+sortState;
tableParam += '&t='+new Date().getTime();
window.open("termBusiApp!download.ai2do?"+tableParam);
}
===================java action 中的代码 ========================
/**
* 数据导出返回文件流
*/
public void download() {
HttpServletResponse resp = ServletActionContext.getResponse();
try {
//导出的源文件
File file = new File("d:/term.txt");
// 默认导出文件名称
String fileName = "是是是.txt";
InputStream inStream = new FileInputStream(file);// 文件的存放路径
// 设置输出的格式
resp.reset();
resp.setContentType("bin");
resp.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(),"iso-8859-1"));
resp.addHeader("Content-Length", "" + file.length());
// 循环取出流中的数据
byte[] b = new byte[1024];
int len;
while ((len = inStream.read(b)) > 0){
resp.getOutputStream().write(b, 0, len);
}
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
在以上action 方法中是指定了一个固定的文件进行示范导出,用户可以改写,可以根据实际情况获取前台传来的参数,然后调用自己的service、dao,然后将数据写到文件中,最后再读取文件流到response中,实现文件导出。