gpt4 book ai didi

jsf -

not working in jsf

转载 作者:行者123 更新时间:2023-12-04 15:57:59 25 4
gpt4 key购买 nike

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

index.xhtml

<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

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 .

最佳答案

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

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

<p:graphicImage value="resource/images/#{image}"  name="COMPANY CREATION"/>  

name属性表示“资源名称”。它基本上是资源的路径,相对于 /resources文件夹上。此属性优先于 value属性。所以基本上你正在尝试创建

<img src="COMPANY CREATION" />

这是不对的。 JSF 会自动生成 RES_NOT_FOUND网址。您应该已经在生成的 HTML 输出中看到了这一点。

如果您的意图是将“COMPANY CREATION”显示为工具提示,那么正确的方法是

<p:graphicImage name="images/#{image}" title="COMPANY CREATION" />

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

<p:graphicImage value="/resources/images/#{image}" title="COMPANY CREATION" />

关于jsf - <p :graphicImage> not working in jsf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18670070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com