首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

struts2+jxl导出excel无法上载

2013-01-11 
struts2+jxl导出excel无法下载struts2配置:[解决办法]action的method少了指定下action nameexportExcel

struts2+jxl导出excel无法下载
struts2配置:

struts2+jxl导出excel无法上载struts2+jxl导出excel无法上载                            
[解决办法]
action的method少了指定下<action name="exportExcel" class="exportExcel" method="exportExcel"> 
------解决方案--------------------


先要排除Excel有没有生成,或者你配置里面出现了重复转向,
页面弹出下载代码贴出来看看
[解决办法]
getInputStream()方法有了吗
[解决办法]

this.filename = new Date().toString() + ".xls";

难道文件名的问题?猜测
[解决办法]
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition", "attachment;filename="
+ new String(paramfile.getName().getBytes("gb2312"),
"iso8859-1"));
os = response.getOutputStream();
book = Workbook.createWorkbook(os);

return null;

最后配置文件
<action name="XXX"
class="XXXXX" method="XXX">
</action>
[解决办法]
<param name="contentType">application/application/vnd.ms-excel</param>
这个改成excel的mimeType再把filename用个简单点的a.xls先试下能下载不
[解决办法]

response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="
+ new String(fileName.getBytes("gbk"), "ISO8859-1")+
new String("导出".getBytes("gbk"), "ISO8859-1")
+ ".xls");
OutputStream out = response.getOutputStream();
WritableWorkbook workbook = Workbook.createWorkbook(out);
……………………
workbook.write();
out.flush();

上面是Struts1的写法
[解决办法]
book.write();             
book.close();             
this.filename = new Date().toString() + ".xls";                           this.inputStream = new ByteArrayInputStream(os.toByteArray()); 

这段代码看上去不太像是将excel发送到前台的,os和book是怎么关联的,os又是怎么发送到前台的
可以先把业务逻辑放在servlet里测一下

热点排行