struts2 下载文件(解决中文乱码)

1 struts配置

1 <action name="templateDownloadManage" class="templateDownloadAction" >
2             <result type="stream" name="success">
3                 <param name="contentType">application/vnd.ms-excel</param>
4                 <param name="inputName">inputStream</param>
5                 <param name="contentDisposition">attachment;filename="${myName}"</param>
6                 <param name="bufferSize">4096</param>
7            </result>
8         </action>

有的帖子说在application/vnd.ms-excel改为application/vnd.ms-excel;charset=utf-8,不过我没加,貌似也过了

2 action类

 1 public class TemplateDownloadAction extends AttachmentAction{
 2     
 3     private String myName;
 4     
 5     @Override
 6     public String execute() throws Exception {
 7         super.execute();
 8         
 9         return SUCCESS;
10     }
11     
12      public InputStream getInputStream() throws Exception {
13          return ServletActionContext.getServletContext().getResourceAsStream("imports/" + myName);
14      }
15 
16     public String getMyName() throws Exception {
17         return new String(this.myName.getBytes(), "ISO8859-1");
18     }
19 
20     public void setMyName(String myName) throws Exception{
21         this.myName = myName;
22     }
23 
24     
25 
26 }

 3 前端正常传递中文文件名,用action中的myName接收即可

posted on 2014-01-06 16:15  看天空的星星  阅读(598)  评论(0编辑  收藏  举报

导航