【问题标题】:h:graphicimage not working in c:foreachh:graphicimage 在 c:foreach 中不起作用
【发布时间】:2011-01-17 12:22:26
【问题描述】:

我使用 c:forEach 循环来显示使用 h:graphicImage 的图像列表。但我无法显示图像。我的页面中也有 h:commandLink。图像必须在表单初始化时显示。但它不起作用。但点击 h:command 链接后,图像正常显示。在此之前,它显示图像未找到文本(替代消息)。我使用了如下的 h:graphicImage 标签

<c:forEach items="#{Sample.imageList}" var="images" varstatus="imageStatus">
    <h:graphicimage id="image" url="#{images}" alt="Image Not Found"/>
</c:forEach>

我在这方面做错了什么,我怎样才能做到这一点?

【问题讨论】:

  • 一定要用jstl吗?尝试使用 看看你是否得到相同的行为

标签: java jsf foreach jstl


【解决方案1】:

图像 URL 是相对于浏览器地址栏中的 URL。显然,命令链接被转发到使相对图像 URL 有效的 URL。

要解决此问题,您需要知道图片的绝对 URL(以http:// 开头)和相关页面的绝对 URL。然后,您可以从中提取图像的正确相对 URL,并在 h:graphicImage 中使用它。

【讨论】:

  • 嗨 Balusc,谢谢你的回答。但现在我得到了新问题。默认情况下,我运行应用程序,它在路径中包含 applicationcontextname。执行任何操作后,它还会在相对路径。所以我无法获取我的图像。我该如何解决这个问题?请帮助我。
  • 嗨 BalusC,谢谢您的回复。我一直被这个问题困扰。通过您的回答,我可以解决这个问题。再次感谢。
  • 图片和页面的绝对网址是什么?
  • 所以图片的相对URL是../../../sample-images/Home/image1.jpg。更好的是使用/sample/sample-images/Home/image1.jpg。如果#{images} 解析为image1.jpg,则需要将/sample/sample-images/Home/#{images} 指定为URL。
猜你喜欢
  • 2012-07-15
  • 2012-08-15
  • 2013-08-01
  • 1970-01-01
  • 2012-08-31
  • 2011-04-04
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
相关资源
最近更新 更多