这就是代码的样子:
<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>
答案 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}" />