繁体   English   中英

如何将服务器路径图像显示到PrimeFaces p:graphicImage?

[英]How to show the server path image to PrimeFaces p:graphicImage?

当我检索服务器路径并显示到p:graphicImage标记时,不显示图像。 图像被加载到webbapp文件夹之外。 图像的服务器路径类似于\\\\qbsserver\\Test Folder\\test\\car.jpg

<p:graphicImage value="\\qbsserver\Test Folder\test\\#{image.imageName}" />

如何让它们显示? 我在Eclipse IDE中使用PrimeFaces 3.0和JSF 2.0。

你犯了一个概念上的错误。 服务器不是以某种方式包含和发送图像以及生成的HTML输出。 Web浏览器在HTML中遇到<img>标记时,按照<img src>指定的URL下载图像。

所以它确实是一个普通的URL,正是最终用户在webbrowser的地址栏中输入的URL,而不是服务器特定的本地磁盘文件系统路径。 使用webbrowser的最终用户实际上没有在其本地磁盘文件系统上的该路径上具有该映像。

最简单的方法是将文件夹添加为您正在使用的servlet容器的“虚拟上下文”。 目前还不清楚你正在使用哪一个。 在Tomcat中,需要在server.xml中添加一个新的<Context>

<Context docBase="/path/to/images" path="/images" />

而在Glassfish中,可以在glassfish-web.xml中添加alternatedocroot

<property name="alternatedocroot_1" value="from=/images/* dir=/path/to" />

有关详细信息,请参阅servletcontainer的文档。 最终,它们应该可以通过普通URL访问,以便您可以使用例如:

<p:graphicImage value="/images/#{image.imageName}" />

其他方法涉及使用PrimeFaces StreamedContent API或homegrowing servlet。

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM