在用struts2做下载的时候,
这是struts.xml部分代码: <action name="download" class="downloadAction">
<result name="success" type="stream">
<param name="fileName"></param>
<param name="contentDisposition">
attachment;filename="${downloadFileName}"
</param>
<param name="inputName">downloadFile</param>
</result>
</action>这是Action代码:package com.struts2.action;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;import com.opensymphony.xwork2.ActionSupport;public class DownloadAction extends ActionSupport implements
ServletRequestAware {
private HttpServletRequest request;
private String fileName; public void setServletRequest(HttpServletRequest request) {
this.request = request;
} public InputStream getDownloadFile() {
File file = new File(request.getSession().getServletContext()
.getRealPath("/")
+ fileName);
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return fis;
} @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
} public String getDownloadFileName() {
String downloadFileName = fileName;
try {
downloadFileName = new String(downloadFileName.getBytes(),
"iso8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downloadFileName;
} public String getFileName() {
return fileName;
} public void setFileName(String fileName) {
this.fileName = fileName;
}
}
现在遇到的问题就是,在我单独用struts2做的时候没什么问题,但是加入spring之后,<param name="contentDisposition">
attachment;filename="${downloadFileName}"
</param>就得不到文件名的返回值,请各位大虾支招,该怎么处理啊?
这是struts.xml部分代码: <action name="download" class="downloadAction">
<result name="success" type="stream">
<param name="fileName"></param>
<param name="contentDisposition">
attachment;filename="${downloadFileName}"
</param>
<param name="inputName">downloadFile</param>
</result>
</action>这是Action代码:package com.struts2.action;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;import com.opensymphony.xwork2.ActionSupport;public class DownloadAction extends ActionSupport implements
ServletRequestAware {
private HttpServletRequest request;
private String fileName; public void setServletRequest(HttpServletRequest request) {
this.request = request;
} public InputStream getDownloadFile() {
File file = new File(request.getSession().getServletContext()
.getRealPath("/")
+ fileName);
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return fis;
} @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
} public String getDownloadFileName() {
String downloadFileName = fileName;
try {
downloadFileName = new String(downloadFileName.getBytes(),
"iso8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downloadFileName;
} public String getFileName() {
return fileName;
} public void setFileName(String fileName) {
this.fileName = fileName;
}
}
现在遇到的问题就是,在我单独用struts2做的时候没什么问题,但是加入spring之后,<param name="contentDisposition">
attachment;filename="${downloadFileName}"
</param>就得不到文件名的返回值,请各位大虾支招,该怎么处理啊?
解决方案 »
- java将文件中的内容创建成树
- 关于SQL在数据库正常运行但程序中调用出错问题。求解决。。。。。!
- hibernate 初学者的疑惑 求对hibernate有见解的大虾解解惑 越详细越好
- 关于Java Socket的一个问题,求教高手
- java fans★★★★★★
- 使用“logicalcobwebs proxool” registered a statement as closed which wasn't known to be open. 什么意思呀
- tomcat5+mysql4.1程序出错
- websphere中对资源保护的问题!
- 求救 ,JBOSS3.2.3中开发Servlet出错!
- tomcat为什么要和apache一起使用啊,好象光有tomcat就够了啊
- 关于JAVA多线程问题的请教,有劳名位,重金酬谢。^_^
- Hibernate update(obj)异常 Unexpected row count: 137 expected: 1
attachment;filename="${downloadFileName}"
不是自动调用action里面的 getDownloadFileName的么?而且我把${}里面换成fileName好像也不行,fileName是全局变量,有get/set方法,是用来接收页面传过来的文件名的。