【问题标题】:How to show the server path image to PrimeFaces p:graphicImage?如何向 PrimeFaces p:graphicImage 显示服务器路径图像?
【发布时间】:2012-06-01 05:28:29
【问题描述】:

当我检索服务器路径并显示到 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。

【问题讨论】:

    标签: image jsf primefaces


    【解决方案1】:

    你犯了一个概念上的错误。不是服务器以某种方式包含并发送图像以及生成的 HTML 输出。当网页浏览器在 HTML 中遇到 &lt;img&gt; 标记时,它会通过 &lt;img src&gt; 中指定的 URL 下载图像。

    所以它必须是一个正常的 URL,与最终用户在网络浏览器的地址栏中输入的完全一样,而不是特定于服务器的本地磁盘文件系统路径。使用网络浏览器的最终用户在其本地磁盘文件系统上的该路径上确实没有该图像。

    最简单的方法是将文件夹添加为您正在使用的 servletcontainer 的“虚拟上下文”。目前尚不清楚您使用的是哪一个。在 Tomcat 中,只需将新的 &lt;Context&gt; 添加到 server.xml 即可

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

    在 Glassfish 中,只需将 alternatedocroot 添加到 glassfish-web.xml

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

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

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

    其他方法包括使用 PrimeFaces StreamedContent API 或自制 servlet。

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 2013-12-07
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      相关资源
      最近更新 更多