} } }

    showModelDialog的应用(二):供给功能

    添加时间:2013-5-20 点击量:

        在上一篇是显现了showModelDialog的根蒂根基应用。当点击我要批改时,须要在后台生成excel文件,同时须要供给文件功能。


        生成excel文件轻易、弹出”文件”也轻易:


        点击按钮,跳转到action中,在该action中生成Excel文件,填充数据,保存惠姑且文件夹中,然后在按钮的Click事务中,按照模板生成Excel报表,填充数据,保存惠姑且文件夹,然后output.wirte()。一切看起来很顺利。


       Action如下(弹出文件窗口):


     



     1     /
    
    2 @param response
    3 @param downloadFile
    4 /
    5 private void clientResponse(HttpServletResponse response,File downloadFile, String fileName){
    6 try {
    7 response.reset();
    8 response.setContentType(application/octet-stream);
    9
    10 // 用来弹出保存窗口 ,设置 为attachment
    11 response.setHeader(Content-Disposition, attachment; filename=+ new String(fileName.getBytes(),ISO-8859-1));
    12 InputStream input=new FileInputStream(downloadFile);
    13 OutputStream output=response.getOutputStream();
    14 int c;
    15 // 读取流并写入到文件中
    16 while ((c = input.read()) != -1) {
    17 output.write(c);
    18 }
    19 output.flush();
    20 output.close();
    21 input.close();
    22 } catch (Exception e) {
    23 }
    24 }


       然则当测试的时辰,发明我点击”我要批改”按钮,老是会弹出一个新的窗口。百度一下,加了这段:<base target=_self>,这个默示在当前页打开页面。


        如下:


        base: 为页面上的所有链接规定默认地址或默认目标       


      target: 跳转到的目标页


        <base target=_blank><!-- 在空白页打开 -->       


      <base target=_parent> <!-- 在当前页的上一页(父类)打开 -->       


      <base target=_search> <!-- 在浏览器地址栏打开-->       


      <base target=_self> <!-- 在当前页打开-->       


      <base target=_top> <!-- 在最初(首页)页打开 -->


         这个题目解决了,然则新的题目又来了,就是文件不成以。所以我有没有那种办法既可以在本页打开,又可以供给呢?想到了iframe框架。我们可以设置一个看不见的iframe框架,然后target=iframName就可以解决了。


     



    1 <iframe id=download name=download height=0px width=0px></iframe>
    
    2
    3 <base target=download>


       这<base...>位于<head></head>之间

    我所有的自负皆来自我的自卑,所有的英雄气概都来自于我的软弱。嘴里振振有词是因为心里满是怀疑,深情是因为痛恨自己无情。这世界没有一件事情是虚空而生的,站在光里,背后就会有阴影,这深夜里一片寂静,是因为你还没有听见声音。—— 马良《坦白书》
    分享到: