2013-03-18 110 views
2

我的應用程序要求在新窗口中打開PDF。要求只有在PDF數據可用時纔打開一個新窗口。我正在撥打服務電話以獲取PDF內容,作爲bytearray。如果服務返回PDF bytearray,那麼我只需要打開一個新窗口來顯示PDF。我正在使用jQuery和Spring。我試過window.open target="_blank"。但問題是它在打到服務器之前立即打開一個窗口。以下是我的控制器代碼來刷新PDF。Servlet在新窗口中打開PDF

response.setContentLength(pdfBytes.length); 
ServletOutputStream out = response.getOutputStream(); 
out.write(pdfBytes); 
out.flush(); 
out.close(); 

我試着用Ajax所以,一旦我得到的迴應我可以做一個window.open打開一個窗口來顯示PDF - 但同樣是行不通的。

回答

0

我認爲你應該在翻譯頁面的時間(或之前)檢查pdf內容,並且顯示target="_blank"(如果有pdf內容)或純文本(如果沒有內容可用)的鏈接。

+0

要求是我們將在加載頁面時總是顯示pdf的鏈接。一旦用戶點擊鏈接,服務器將返回pdf內容。如果服務器返回數據,那麼我需要在新窗口中打開它。 – user2183807 2013-03-18 21:27:19

+0

您是否有可能在瀏覽器中以PDF格式打開的URL? – 2013-03-18 21:50:03

+0

點擊鏈接後,我將重定向到控制器中的請求映射URL。我從控制器調用服務來獲取pdf作爲字節數組。 – user2183807 2013-03-19 13:17:50