获得绝对路径jsf

时间:2013-08-28 03:16:44

标签: java jsf facelets

我想获得我应用的绝对路径,并且我正在使用以下代码:

String pathToSave = FacesContext.getCurrentInstance()
                .getExternalContext().getRealPath("/");

结果是:

/home/ronaldo/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Odontonew/

但我正在等待:/home/ronaldo/workspace/Odontonew/

有什么问题?

1 个答案:

答案 0 :(得分:4)

ExternalContext#getRealPath()返回相对于部署的网址的路径,而不是像您错误地预期的那样开发webapp的路径。

但是,变量名pathToSave表示更大的问题:您似乎打算在那里保存文件。由于以下答案中提到的原因,这是糟糕的主意Uploaded image only available after refreshing the page。简而言之,将它们保存到固定的本地磁盘文件系统路径中。请注意,某些服务器提供了使此步骤更易于配置的方法,例如: JBoss

停止使用getRealPath()。在现实世界中你永远不需要它。在我开发Java Web应用程序的10年中(它来自ServletContext#getRealPath()),该方法从未对任何事情有用。完全忽略这种方法。

另见:

相关问题