单击myReturn按钮时,h:gaphicImage上没有显示图像但是当点击导航器后面时显示该图像

时间:2011-02-21 19:57:25

标签: html jsp jsf

这就是代码的样子:

<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>

1 个答案:

答案 0 :(得分:1)

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

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

您需要以/开头,使用完整的网址或相对于域的相对位置来使其成为绝对值。我建议采用后一种方法。假设webapp在http://example.com/appname上运行并且http://example.com/appname/includes/images/name.ext可以使用该图像,那么应该执行以下操作。 <h:graphicImage>已将上下文路径考虑在内。

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