showModelDialog彈出文件下載窗口的使用示例
當點擊我要修改時,需要在后臺生成excel文件,同時需要提供下載文件功能。
生成excel文件容易、彈出”文件下載”也容易:
點擊按鈕,跳轉(zhuǎn)到action中,在該action中生成Excel文件,填充數(shù)據(jù),保存到臨時文件夾中,然后在按鈕的Click事件中,根據(jù)模板生成Excel報表,填充數(shù)據(jù),保存到臨時文件夾,然后output.wirte()。一切看起來很順利。
Action如下(彈出"文件下載"窗口):
/**
*@paramresponse
*@paramdownloadFile
*/
privatevoidclientResponse(HttpServletResponseresponse,FiledownloadFile,StringfileName){
try{
response.reset();
response.setContentType("application/octet-stream");
//用來彈出保存窗口,設(shè)置為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框架。我們可以設(shè)置一個看不見的iframe框架,然后target=iframName就可以解決了。
<iframe id="download" name="download" height="0px" width="0px"></iframe>
<base target="download">
這<base...>位于<head></head>之間
相關(guān)文章
解決jquery的.animate()函數(shù)在IE6下的問題
最近剛在項目里面花心思捉摸JQ,所以有些心得也及時放上來,理解不足的地方也請教下大家。2010-12-12JQuery判斷checkbox是否選中及其它復選框操作方法合集
這篇文章主要介紹了JQuery判斷checkbox是否選中及其它復選框操作方法合集,本文匯總了網(wǎng)上解決這個問題比較好的幾篇文章,需要的朋友可以參考下2015-06-06