【问题标题】:JSF Image and absolute path [duplicate]JSF图像和绝对路径[重复]
【发布时间】:2011-06-07 20:54:37
【问题描述】:

我知道要让 JSF 显示图像,路径必须来自 Web/应用程序服务器根目录,而不是系统根目录。所以没有绝对路径。但这是我的问题。由于我将允许用户上传他们自己的图片并稍后显示它们,因此我需要将图片保存在某个地方。但是,如果我将图像保存在我的项目中,未来的项目重新部署可能会删除我的图片。因此,我认为,最好上传到不受未来重新部署影响的文件夹。但是 h:graphicImage 或 p:graphicImage 不允许我使用绝对路径。我有什么办法来解决这个问题?

我知道这给了我通往项目战争的道路

ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();  
String path = servletContext.getRealPath("");

有没有办法让我进入网络/应用程序根目录?

Primefaces 2.2-RC2
Glassfish 3.0.1
莫哈拉 2.0.3 Java EE 6

编辑

经过一番研究,我了解到 PrimeFaces 允许您使用FileInputStream 流式传输图像的内容,并且您可以使用绝对路径FileInputStream。这可能是一个很好的解决方案,直到我测试并发现这只能在 RequestScoped 和 SessionScoped Bean 上工作,而不能在 ViewScoped 上工作。

这是我发布的链接,以通知他们的开发人员有关此主要错误的信息。 http://primefaces.prime.com.tr/forum/viewtopic.php?f=3&t=7052

还有什么想法吗?

【问题讨论】:

  • 上面的链接为我提供了一个解决方案。看看吧。

标签: image jsf primefaces absolute-path


【解决方案1】:

只需映像一个特殊的 servlet,ImageServlet,它映射到 /image/*(例如),并从中发送图像(将它们作为 InputStream 获取,并将其写入响应 OutputStream)

【讨论】:

  • 你能给我一些示例代码吗?
  • @Harry:检查重复链接:)
  • @BalusC:我现在正在阅读它。我也有几个问题要问你?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-10
  • 2014-03-14
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多