struts2 文件下载配置

有些应用我们要下载文件,而不是直接在浏览器中打开,我们在STURTS2中的配置方式是:

  1. public class FileDownloadAction implements Action {   
  2.   
  3.     private String inputPath;   
  4.     public void setInputPath(String value) {   
  5.         inputPath = value;   
  6.     }   
  7.   //在这里的这个getInputStream中的inputStream是和配置文件中的inputName名字对应,这样STRUTS2就能根据配置文件中的文件去找到该文件流,注意,如果是提供文件下载,该文件必须是放在你的系统项目的某个文件夹中。
  8.     public InputStream getInputStream() throws Exception {   
  9.         return ServletActionContext.getServletContext().getResourceAsStream(inputPath);   
  10.     }   
  11.   
  12.     public String execute() throws Exception {   
  13.         return SUCCESS;   
  14.     }   
  15. }  

配置文件:

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2.   
  3. <!DOCTYPE struts PUBLIC   
  4.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  5.     "http://struts.apache.org/dtds/struts-2.0.dtd">   
  6.   
  7. <struts>   
  8.     <package name="filedownload" extends="struts-default" namespace="/filedownload">   
  9.   
  10.         <default-action-ref name="download"/>   
  11.   
  12.         <action name="download" class="org.apache.struts2.showcase.filedownload.FileDownloadAction">   
  13. <!--个人认为param是从ValueStack里取值,但不知道能否在配置文件里往ValueStack设值 --!>   
  14.             <param name="inputPath">/images/struts.gif</param>   
  15.             <result name="success" type="stream">   
  16.                 <param name="contentType">image/gif</param>   
  17.                 <param name="inputName">inputStream</param>   
  18.                 <param name="contentDisposition">filename="struts.gif"</param>   
  19.                 <param name="bufferSize">4096</param>   
  20.             </result>   
  21.         </action>   
  22.   
  23.         <action name="download2" class="org.apache.struts2.showcase.filedownload.FileDownloadAction">   
  24.             <param name="inputPath">/images/struts-gif.zip</param>   
  25.             <result name="success" type="stream">   
  26.                 <param name="contentType">application/zip</param>   
  27.                 <param name="inputName">inputStream</param>   
  28.                 <param name="contentDisposition">filename="struts-gif.zip"</param>  
  29. //在这里还可以配置一个attachment;比如attachment; filename="struts-gif.zip这样浏览器就不会直接打开该文件,而是提供下载的方式。
  30.                 <param name="bufferSize">4096</param>   
  31.             </result>   
  32.         </action>   
  33.   
  34.     </package>   
  35. </struts>  

你可能感兴趣的:(struts2)