<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 5,  comments - 7,  trackbacks - 0
    通過JSF下載文件,不管這個文件是物理存在的,還是由服務器內存中生成的。
    用戶從頁面點擊連接(link),下載相關的文件,該文件存在服務器端,或者由服務器端生成文件流,沒有物理文件;下載后頁面不跳轉。

    JSP代碼:


    <h:commandLink actionListener="#{productBean.downloadAction}" styleClass="highLightLink">
       <h:outputText value="download"/>
       <f:param name="productId" value="#{productBean.id}"/>
    </h:commandLink>



    Backing bean設計及代碼:
    注意這是個Action listener方法,沒有返回值,并且有javax.faces.event.ActionEvent參數


       public void downloadAction(ActionEvent event) {
        try {
          String fileName="D:\\temp\\images\\products\\" + this.id + ".xls";
          logger.debug("file name=" + fileName);
          ByteArrayOutputStream baos=this.serviceLocator.getFileService().downloadFile(fileName); //調用Service方法,獲得文件的ByteArrayOutputStream
          HttpServletResponse response=FacesUtils.getServletResponse();
          response.setHeader("Content-disposition", "attachment; filename=" + id+ ".xls" ); //不是內嵌顯示(inline),而是作為附件下載
          response.setContentLength(baos.size());
          ServletOutputStream sos=response.getOutputStream();
          baos.writeTo(sos);
          baos.close();
          sos.flush();
        } catch (IOException ex) {      
          logger.debug(ex);
        }  
      }



    Service代碼:
    這個實現是一個從已經存在的物理文件獲得輸出流的范例,至于由Server在內存中生成輸出流也是一樣處理,例如生成一個Excel文件,再讓用戶下載。


    public ByteArrayOutputStream downloadFile(String fileName) throws IOException {
        FileInputStream fis=new FileInputStream(fileName);
        BufferedInputStream bis=new BufferedInputStream(fis);
        ByteArrayOutputStream baos=new ByteArrayOutputStream();
        BufferedOutputStream bos=new BufferedOutputStream(baos);
        
        int i;
        while((i=bis.read())!=-1) {
          bos.write(i);
        }
        bos.flush();//提交文件流,很關鍵
        bis.close();
        return baos;
      }

    posted on 2008-11-27 11:25 Vincent-chen 閱讀(601) 評論(0)  編輯  收藏 所屬分類: JSF
    主站蜘蛛池模板: 浮力影院亚洲国产第一页| 大学生一级毛片免费看| 亚洲不卡无码av中文字幕| 亚洲午夜无码久久| 青青久在线视频免费观看| 亚洲嫩草影院在线观看| 最近中文字幕无免费| 久久久久亚洲精品无码蜜桃| 96免费精品视频在线观看| 久久精品国产亚洲AV麻豆~| 久久大香伊焦在人线免费| 亚洲色婷婷综合久久| 97无码人妻福利免费公开在线视频 | 亚洲高清国产拍精品青青草原| 鲁死你资源站亚洲av| 国产亚洲精品精品国产亚洲综合| a毛片免费全部播放完整成| 亚洲伦另类中文字幕| 国产福利视精品永久免费| 亚洲熟妇av午夜无码不卡| 永久黄网站色视频免费直播| 麻豆91免费视频| 久久亚洲国产午夜精品理论片| 一级毛片免费观看不卡的| 亚洲成AV人综合在线观看| 精品免费国产一区二区三区 | 有码人妻在线免费看片| 亚洲人成精品久久久久| 日本免费xxxx色视频| 国产亚洲精品免费| 国产l精品国产亚洲区在线观看| 免费在线观看视频网站| 国产精品亚洲精品爽爽| 亚洲V无码一区二区三区四区观看| 国产精品免费网站| 成人特级毛片69免费观看| 亚洲电影一区二区三区| 免费看美女被靠到爽| 精品在线免费观看| 亚洲人成网站在线播放2019| 亚洲熟女少妇一区二区|