2013-08-22 73 views
0

我嘗試在我的jsf2應用程序上顯示pdf文件,問題出在路徑文件中。無法在我的jsf2應用程序中顯示pdf文件

我的PDF文件是一個名爲FichesPratiques這是一個名爲資源另一個文件夾內(文件夾資源裏面的WebContent)文件夾中,我用它來顯示它:

<p:media value="/resources/FichesPratiques/file.pdf" width="100%" height="300px"> 

但是顯示任何東西。

和更奇怪的是,當我使用下面的鏈接下載它,它不起作用。

<h:outputLink value="/resources/FichesPratiques/file.pdf">click</h:outputLink> to download pdf instead. 

有人可以幫我嗎?

回答

1

仔細查看這些組件的HTML輸出中生成的URL(右鍵單擊,在webbrowser中查看源代碼)。與其他情況相反,<h:graphicImage value><p:media value><h:outputLink value>不會預先加載URL中的Web應用程序上下文路徑。 URL中的前導/使其相對於請求URL的域根目錄(您在瀏覽器的地址欄中看到的那個)。

試想一下,在JSF頁面被

http://localhost:8080/somecontext/page.xhtml

開那麼那些value="/resources/FichesPratiques/file.pdf"路徑所期望的資源存在於

http://localhost:8080/resources/FichesPratiques/file.pdf

但是,你實際上有它在

http://localhost:8080/somecontext/resources/FichesPratiques/file.pdf

您應使用有效的相對URL到當前請求的URL,

<p:media value="resources/FichesPratiques/file.pdf" ... /> 

或明確地指定上下文路徑中的URL,

<p:media value="#{request.contextPath}/resources/FichesPratiques/file.pdf" ... /> 
相關問題