2013-11-28 69 views
1

我正在使用jsf 2.2.4框架和glassfish 4服務器在java web應用程序項目中工作。 我有這樣的目錄結構在我的項目:jsf獲取文件路徑或目錄以外的戰爭

enter image description here

我如何訪問。圖片目錄內。圖片的目錄和文件? 注意:gambar目錄是外部戰爭(我想把它放在戰爭之外)。

許多感謝您的回答

+0

該文件夾在構建的WAR文件中結束的位置?將項目導出爲WAR並使用某個zip工具提取WAR並查看。如果它不在那裏,那麼顯然無法從程序內部獲取它);在這種情況下,您需要退後一步,想一想/如何讓該文件夾最終進入建立。 – BalusC

+0

該文件夾在建立的WAR文件中最終位於何處?這是建立戰爭。我可以將它手動添加到像http://s9.postimg.org/jyx23mb5b/image.jpg?這樣的構建文件夾中。你是對的BalusC如何讓文件夾最終在構建?我記得當我使用xampp(PHP項目)時,我只是將文件夾放到htdocs中的應用程序文件夾中,並通過本地主機/應用程序/文件夾訪問它。 –

回答

1

沒有直接的方式來加載從servlet上下文的外面servlet或框架文件,例如JSF。但是,您可以提供Web應用程序的情況下PARAM絕對文件夾路徑,然後從你的JSF bean中

<web-app> 
.................. 
    <context-param> 
     <param-name>myfolderpath</param-name> 
     <param-value>D:/myfolder</param-value> 
    </context-param> 
.................. 
</web-app> 

讀它,然後閱讀它

FacesContext ctx = FacesContext.getCurrentInstance(); 
String myConstantValue = 
    ctx.getExternalContext().getInitParameter("myfolderpath"); 

另一種方法是通過你的文件夾位置在服務器啓動時在系統屬性中,然後在JSF bean中訪問它。

但是應該仔細研究這個設計。關於它的缺點的一些很好的討論herehere

+0

返回null ...我可以在web-inf中使用本地磁盤(d:\ netbeans project \ webproject \ gambar)中的值的上下文參數嗎?怎麼做 ? –

+0

看看更新的答案或http://stackoverflow.com/questions/6523193/jsf-2-how-can-i-get-a-context-param-value-from-web-xml-using-jsf-埃爾 – Shailendra