當點擊我要修改時,需要在后臺生成excel文件,同時需要提供下載文件功能。
生成excel文件容易、彈出”文件下載”也容易:
點擊按鈕,跳轉(zhuǎn)到action中,在該action中生成Excel文件,填充數(shù)據(jù),保存到臨時文件夾中,然后在按鈕的Click事件中,根據(jù)模板生成Excel報表,填充數(shù)據(jù),保存到臨時文件夾,然后output.wirte()。一切看起來很順利。
Action如下(彈出"文件下載"窗口):
//用來彈出保存窗口,設置為attachment
response.setHeader("Content-Disposition","attachment;filename="+newString(fileName.getBytes(),"ISO-8859-1"));
InputStreaminput=newFileInputStream(downloadFile);
OutputStreamoutput=response.getOutputStream();
intc;
//讀取流并寫入到文件中
while((c=input.read())!=-1){
output.write(c);
}
output.flush();
output.close();
input.close();
}catch(Exceptione){
}
}
但是當測試的時候,發(fā)現(xiàn)我點擊”我要修改”按鈕,總是會彈出一個新的窗口。百度一下,加了這段:<basetarget="_self">,這個表示在當前頁打開頁面。
如下:
base:為頁面上的所有鏈接規(guī)定默認地址或默認目標
target:跳轉(zhuǎn)到的目標頁
<basetarget=_blank><!--在空白頁打開-->
<basetarget=_parent><!--在當前頁的上一頁(父類)打開-->
<basetarget=_search><!--在瀏覽器地址欄打開-->
<basetarget=_self><!--在當前頁打開-->
<basetarget=_top><!--在最初(首頁)頁打開-->
這個問題解決了,但是新的問題又來了,就是文件不可以下載。所以我有沒有那種方法既可以在本頁打開,又可以提供下載呢?想到了iframe框架。我們可以設置一個看不見的iframe框架,然后target=iframName就可以解決了。
<base target="download">
新聞熱點
疑難解答