showModelDialog彈出文件下載窗口的使用示例
當點擊我要修改時,需要在后臺生成excel文件,同時需要提供下載文件功能。
生成excel文件容易、彈出”文件下載”也容易:
點擊按鈕,跳轉到action中,在該action中生成Excel文件,填充數(shù)據,保存到臨時文件夾中,然后在按鈕的Click事件中,根據模板生成Excel報表,填充數(shù)據,保存到臨時文件夾,然后output.wirte()。一切看起來很順利。
Action如下(彈出"文件下載"窗口):
/**
*@paramresponse
*@paramdownloadFile
*/
privatevoidclientResponse(HttpServletResponseresponse,FiledownloadFile,StringfileName){
try{
response.reset();
response.setContentType("application/octet-stream");
//用來彈出保存窗口,設置為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:跳轉到的目標頁
<basetarget=_blank><!--在空白頁打開-->
<basetarget=_parent><!--在當前頁的上一頁(父類)打開-->
<basetarget=_search><!--在瀏覽器地址欄打開-->
<basetarget=_self><!--在當前頁打開-->
<basetarget=_top><!--在最初(首頁)頁打開-->
這個問題解決了,但是新的問題又來了,就是文件不可以下載。所以我有沒有那種方法既可以在本頁打開,又可以提供下載呢?想到了iframe框架。我們可以設置一個看不見的iframe框架,然后target=iframName就可以解決了。
<iframe id="download" name="download" height="0px" width="0px"></iframe>
<base target="download">
這<base...>位于<head></head>之間
相關文章
jQuery的Cookie封裝,與PHP交互的簡單實現(xiàn)
下面小編就為大家?guī)硪黄猨Query的Cookie封裝,與PHP交互的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10
jQuery 過濾方法filter()選擇具有特殊屬性的元素
需要選出所有有背景圖片的元素,使用jQuery的DOM過濾方法filter(),可以根據函數(shù)中表達的任何條件選擇元素,需要的朋友可以參考下2014-06-06

