我用seamgen(还有gui)创建了一个应用程序,我在应用程序的根目录中创建了一个文件夹“pictures”,用于存储个人资料图像。
当我评估ServletContext.getRealPath(“pictures”)时,它会返回一个临时目录。
d:\ Dizertatie \爪哇\ jboss-5.1.0.GA \服务器\默认\ TMP \ 5c4o02s-hw5k2v-gj5pc3oq -1- gj632njx-AL \ RaceCatalog.war \图片\ 1295555156562.jpg
我也尝试使用生成的img文件夹,它仍然是一样的。
如何获得相对路径
PS。我想用
答案 0 :(得分:2)
正如您在评论中提到的那样 - 您需要这样才能渲染图像。为此目的使用此方法是错误的。
默认情况下, <h:graphicsImage>
使用应用程序上下文根的相对路径。无需额外步骤。
至于JBoss在提取war文件时的行为 - 看起来很奇怪,但它并没有违反规范。可以随意提取未爆炸的战争档案。
更新:如果这是关于爆炸性战争(由你),那么随意发动一个错误。但这并不重要 - 你不应该在webapp中存储图片。配置外部位置并将其保存在那里。否则,您可能会在重新部署时丢失图片。
答案 1 :(得分:1)
是。行为是正确的。有关getRealPath()方法的描述,请参阅javadoc:Read here
我怀疑你正在寻找一种不同的方法,但你没有充分描述你希望得到什么样的路径。