2013-11-28 47 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