p:graphicimage不工作

时间:2014-06-05 22:42:46

标签: jsf primefaces galleria

我几天前一直在寻找解决我的JSF问题的方法,并尝试了所有可能的解决方案。没有任何效果。

我想实现一个jsf galleria,比如this一个。代码不起作用,页面中没有显示任何内容。

这是我的豆子:

import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

@ManagedBean(name="myGallery")
@ApplicationScoped
public class GalleriaBean {

private List<String> images;

private String effect = "fade";

@PostConstruct
public void init() {
    images = new ArrayList<String>();

    for(int i=1;i<=4;i++) {
        images.add("gallery" + i + ".jpg");
    }
}

public List<String> getImages() {
    return images;
}

public String getEffect() {
    return effect;
}

public void setEffect(String effect) {
    this.effect = effect;
}
}

以下代码将是我的xhtml内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.org/ui"> 

<h:head></h:head> 
<h:body>
    <h:panelGroup>
    <p:galleria effect="#{myGallery.effect}" var="image" effectSpeed="1000" styleClass=".ui-galleria-image-thumb-nav-left">  
        <ui:repeat value="#{myGallery.images}" var="image">  
            <h:graphicImage value="resources/images/#{image}" title="#{image}"/>  
        </ui:repeat>  
    </p:galleria>
</h:panelGroup>
</h:body> 
</html>            

你可能已经注意到了,我正在使用而不是。使用此设置,我的所有图像都会以垂直列表的形式投放到页面中,没有淡入淡出过渡或任何其他图库类型。如果我更换,我的页面完全空白,图像根本不显示。

可能是什么原因?我需要添加什么,以使图库看起来像上面页面上的那个?

2 个答案:

答案 0 :(得分:1)

好的,问题似乎是我没有把PrimeFaces库(jar)放在WEB-INF的lib文件夹中。此外,我确保我在GalleriaBean中拥有所有属性的setter和getter。希望这对任何人都有帮助。

答案 1 :(得分:-2)

HY,

运行此代码:)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:p="http://primefaces.org/ui"> 

    <h:head></h:head> 
    <h:body>
        <h:panelGroup>
        <p:galleria effect="#{myGallery.effect}" value="#{myGallery.images}" var="image" effectSpeed="1000" styleClass=".ui-galleria-image-thumb-nav-left">  

                <p:graphicImage name="pathDirectory/#{image}" title="#{image}"/>  

        </p:galleria>
    </h:panelGroup>
    </h:body> 
    </html> 

您可以使用网站PrimeFaces中的example