首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><p:graphicImage>不在jsf工作

<p:graphicImage>不在jsf工作
EN

Stack Overflow用户
提问于 2013-09-07 05:27:13
回答 1查看 17.3K关注 0票数 3

最近,我在JSF页面中包含了一个<p:galleria>,如PrimeFaces展示所示。代码正在执行,没有任何错误,但它没有显示任何图像。我认为这是由于不正确的路径格式的图像。这是如何造成的,我如何解决呢?

index.xhtml

代码语言:javascript
复制
<p:galleria value="#{compa.images}" var="image" panelWidth="1570" panelHeight="250" showCaption="true">  
    <p:graphicImage value="resource/images/#{image}"  name="COMPANY CREATION"/>  
</p:galleria> 

compa.java

代码语言:javascript
复制
public void init() {  
    images = new ArrayList<String>();  

    for(int i=1;i<=10;i++) {  
        images.add("resource/images" + i + ".jpg");  
    }  
}

IDE中的图像路径是ps\build\web\resource\images

EN

回答 1

Stack Overflow用户

发布于 2013-09-09 00:03:55

首先,JSF在这个问题的上下文中只是一个HTML代码生成器。在HTML中,图像由<img>元素表示,该元素的src属性应该指向一个(相对) URL,the浏览器可以从该URL单独下载图像。您是否通过在webbrowser中打开JSF页面并执行右键单击和查看Source来检查生成的HTML输出?生成的<img>元素看起来还好吗?很可能不会。

使用name属性的方式是不正确的。

代码语言:javascript
复制
<p:graphicImage value="resource/images/#{image}"  name="COMPANY CREATION"/>  

name属性表示“资源名称”。它基本上是资源的路径,相对于/resources文件夹。该属性优先于value属性。所以基本上你想要创造

代码语言:javascript
复制
<img src="COMPANY CREATION" />

这是不对的。JSF将自动生成一个RES_NOT_FOUND URL。您应该在生成的HTML输出中看到这一点。

如果您的目的是将“公司创建”显示为工具提示,那么正确的方法是

代码语言:javascript
复制
<p:graphicImage name="images/#{image}" title="COMPANY CREATION" />

或者,如果坚持使用value属性,则使用上下文相关的URL,而不是资源名称:

代码语言:javascript
复制
<p:graphicImage value="/resources/images/#{image}" title="COMPANY CREATION" />
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18670070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档