神乎!struts2文件下载,名称竟然是action名!
求解答,为何我的文件下载弹出的保存对话框里的名称竟然是action名? 求打救
无论是固定filename="student.xls",还是filename="${fileName}",显示的都是action名!
struts配置如下:
<action name="exportExcelStu" class="ab.action.user.UserList" method="toexcelStu">
<result type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="inputName">targetFile</param>
<param name="contentDisposition">attachment;filename="student.xls"</param>
<param name="bufferSize">4096</param>
</result>
</action>
action代码如下:
HttpServletResponse response = ServletActionContext.getResponse();
OutputStream output=response.getOutputStream();
fileName= new String("学生信息.xls".getBytes(), "UTF-8");
this.setFileName(java.net.URLEncoder.encode(fileName, "UTF-8"));
try{
WritableWorkbook wk=Workbook.createWorkbook(output);
setWh("1");
userService.getInformation(wk,wh,null);
output.close();
}catch(Exception e){
e.printStackTrace();}
[解决办法]
没有配置路径参数引起的
[解决办法]
参数配置有问题
[解决办法]
targetFile在哪里配置的?改为inputStream看下
[解决办法]
http://pengranxiang.iteye.com/blog/259401
[解决办法]
为什么action代码段中没有写出的动作呢,不需要的?
[解决办法]
response.setContentType("text/plain;charset=ISO8859-1"); //设置 response 的编码方式
response.setContentLength((int)file.length()); //写明要下载的文件的大小
response.setHeader("Content-disposition","attachment;filename="+fileName); //设定输出文件头