1. 程式人生 > >struts2與ognl結合實現下載

struts2與ognl結合實現下載

首先完成我們的Action,繼承ActionSupport

[java] view plain copy  print?
  1. private InputStream Is;  
  2.     private String filename;  
  3.     public String getFilename() throws UnsupportedEncodingException   
  4.     {  
  5.         return URLEncoder.encode("參與感的前世今生.zip","UTF-8");//解決中文名的亂碼問題
  6.     }  
  7.     public InputStream getIs()   
  8.     {  
  9.         //獲得servletcontext
  10.         ServletContext sc=ServletActionContext.getServletContext();  
  11.         //獲得資源流
  12.         Is=sc.getResourceAsStream("/WEB-INF/apache-tomcat-6.0.35.zip");  
  13.         //返回
  14.         return Is;  
  15.     }  
  16.     @Override
  17.     public String execute() throws Exception   
  18.     {  
  19.         return
     SUCCESS;  
  20.     }  


struts.xml註冊一下action

[java] view plain copy  print?
  1. <result name="success" type="stream">  
  2. <param name="contentType">application/zip</param>  
  3.     <param name="inputName">is</param>  
  4.     <!--  
  5.     1:響應頭用的iso-8859-1 無法使用中文  
  6.     2:使用urlencoding編碼才能傳送中文   
  7.     3:ognl表示式 這不是el  
  8.      -->  
  9.     <param name="contentDisposition">attachment;filename="${filename}"</param>  
  10.     <param name="bufferSize">1024</param>  
  11. </result>  
別忘了在web.xml註冊struts2.