zoukankan      html  css  js  c++  java
  • struts2 annotation方式的下载(实用版)

    import java.io.InputStream;
    import java.io.UnsupportedEncodingException;
    import org.apache.struts2.ServletActionContext;
    import org.apache.struts2.convention.annotation.Result;
    import org.apache.struts2.convention.annotation.ResultPath;
    import org.apache.struts2.convention.annotation.Results;
    import com.opensymphony.xwork2.ActionSupport;
    @ResultPath("/")
    @Results(value={
            @Result(name="success", type="stream",params={"contentType","application/octet-stream;charset=utf-8","inputName","inputStream","contentDisposition","attachment;filename=${fileName}","bufferSize","4096"})
    })
    public class DownloadAction extends ActionSupport {
        private String fileName;
        private InputStream inputStream;
        public void setFileName(String fileName) {
            this.fileName = fileName;
        }
        public InputStream getInputStream() {
            InputStream tempInputStream= (InputStream) ServletActionContext.getRequest().getAttribute("inputStream");
            String tempFileName= (String) ServletActionContext.getRequest().getAttribute("fileName");
            this.setFileName(tempFileName);
            return tempInputStream;
        }
    
        public String getFileName() {
            String temp=this.fileName;
            {        
                try {
                    this.fileName =  new String(temp.getBytes(), "ISO8859-1"); 
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }   
            }
            return fileName;
        }
    }
    public class DemoAction extends ActionSupport {
    	//通过在params中配置namespace参数,就可以改变action的命名空间
    	@Action(value="downloadDemo",results={@Result(name="downloadDemo", type="chain",params={"namespace","/"},location="download")})
    	public String downloadDemo() throws FileNotFoundException
    	{
    		InputStream inputStream=new FileInputStream(new File("c:/test.xls")) ;
    		ServletActionContext.getRequest().setAttribute("inputStream", inputStream);
    		ServletActionContext.getRequest().setAttribute("fileName", "中文test.xls");
    		return "downloadDemo";
    	}
    }
    

      还可以这样,将actionName也放入params里,而不是使用location

    public class DemoAction extends ActionSupport {
        //通过在params中配置namespace参数,就可以改变action的命名空间
        @Action(value="downloadDemo",results={@Result(name="downloadDemo", type="chain",params={"namespace","/","actionName","download"}})
        public String downloadDemo() throws FileNotFoundException
        {
            InputStream inputStream=new FileInputStream(new File("c:/test.xls")) ;
            ServletActionContext.getRequest().setAttribute("inputStream", inputStream);
            ServletActionContext.getRequest().setAttribute("fileName", "中文test.xls");
            return "downloadDemo";
        }
    }

     http://localhost:8080/wang/downloadDemo.action

  • 相关阅读:
    语文文法
    1223 递归下降语法分析程序设计
    有穷的自动机构造
    文法分析
    text
    0916 词法分析(3)
    "firstday"-软件工程
    实验四 递归下降语法分析程序设计
    构造该正规式的有穷状态自动机
    评论
  • 原文地址:https://www.cnblogs.com/passer1991/p/2970645.html
Copyright © 2011-2022 走看看