单击 myReturn 按钮时,图像未显示在 h:gaphicImage 上,但单击导航器的后退时,图像会显示

发布于 2024-10-18 14:09:16 字数 695 浏览 0 评论 0原文

代码如下所示:

<h:dataTable value="#{movie.movieItems}" var="item" border="0" cellpadding="2" cellspacing="0" rowClasses="jsfcrud_odd_row,jsfcrud_even_row" rules="all" style="border:solid 1px">
    <h:column>
        <f:facet name="header">
            <h:outputText value="Cover"/>
        </f:facet>
        <h:graphicImage value="../includes/images/#{item.cover}" styleClass="covers"/>
    </h:column>
    <h:column>
        <f:facet name="header">
            <h:outputText value="Nanme"/>
        </f:facet>
        <h:outputText value="#{item.name}" styleClass="info"/>
    </h:column>

This is what the code looks like:

<h:dataTable value="#{movie.movieItems}" var="item" border="0" cellpadding="2" cellspacing="0" rowClasses="jsfcrud_odd_row,jsfcrud_even_row" rules="all" style="border:solid 1px">
    <h:column>
        <f:facet name="header">
            <h:outputText value="Cover"/>
        </f:facet>
        <h:graphicImage value="../includes/images/#{item.cover}" styleClass="covers"/>
    </h:column>
    <h:column>
        <f:facet name="header">
            <h:outputText value="Nanme"/>
        </f:facet>
        <h:outputText value="#{item.name}" styleClass="info"/>
    </h:column>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柏拉图鍀咏恒 2024-10-25 14:09:16
<h:graphicImage value="../includes/images/#{item.cover}" />

由于图像 URL 不以方案或 / 开头,因此它与当前请求 URL(显示在浏览器地址栏中的 URL)相关。在它不起作用的页面中,页面本身显然是由 URL 中的额外路径调用的。这将使图像无法访问。

您需要使用完整的 URL 使其绝对化,或以 / 开头使其相对于域。我建议采用后一种方法。假设 Web 应用程序在 http://example.com/appname 上运行,并且图像可通过 http://example.com/appname/includes/images/name.ext,然后以下应该做。 已经考虑了上下文路径。

<h:graphicImage value="/includes/images/#{item.cover}" />
<h:graphicImage value="../includes/images/#{item.cover}" />

Since the image URL does not start with a scheme or /, it becomes relative to the current request URL (the one which appears in browser address bar). In the page where it's not working, the page itself is apparently called by an extra path in the URL. It will make the image unreachable.

You need to make it absolute by using the full URL or relative to the domain by starting with /. I'd suggest the latter approach. Assuming that the webapp runs on http://example.com/appname and that the image is available by http://example.com/appname/includes/images/name.ext, then the following should do. The <h:graphicImage> already takes the context path into account.

<h:graphicImage value="/includes/images/#{item.cover}" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文