2016-12-04 99 views
1

我试图用所谓的contentFlow JSF Primefaces成分,它在这里证明:http://www.primefaces.org/showcase/ui/multimedia/contentFlow.xhtmlPrimefaces ContentFlow不会呈现全部内容

我添加了两个图像,支持bean。它们都可以在不使用contentFlow的情况下显示,因此它们可用且位于正确的位置。问题是,contentFlow只显示当前选择的图像。预期的行为是,它也显示所有其他图像。

我google了很多,也发现了Primefaces组件的文档来验证我的XHTML。我还更改了JSF日志级别以查看所有调试消息,但JSF一直告诉我一切正常。

除了项目的配置外,我只做过展示说明。这是我设置的总结:

  • 我Windows x64上使用Apache Tomcat 8.0.39
  • 火狐50.0.2和Chrome版本55.0.2883.75米(64位)都出现了相同的结果(只有当前选择的图像是可见的)
  • 我使用Java 8
  • 而这些项目的依赖

    <dependency> 
        <groupId>org.primefaces</groupId> 
        <artifactId>primefaces</artifactId> 
        <version>6.0.RC4</version> 
    </dependency> 
    <dependency> 
        <groupId>com.sun.faces</groupId> 
        <artifactId>jsf-api</artifactId> 
        <version>2.2.14</version> 
    </dependency> 
    <dependency> 
        <groupId>com.sun.faces</groupId> 
        <artifactId>jsf-impl</artifactId> 
        <version>2.2.14</version> 
    </dependency> 
    <dependency> 
        <groupId>javax.servlet</groupId> 
        <artifactId>servlet-api</artifactId> 
        <version>2.5</version> 
        <scope>provided</scope> 
    </dependency> 
    

这是我支持bean:

package de.schuettec.jsfquestion.contentFlow; 

import java.util.ArrayList; 
import java.util.List; 

import javax.annotation.PostConstruct; 
import javax.faces.bean.ManagedBean; 

@ManagedBean 
public class Images { 

private List<String> images; 

@PostConstruct 
public void init() { 
    images = new ArrayList<String>(); 
    images.add("img-01.png"); 
    images.add("img-02.png"); 
} 

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

这是我的XHTML页面:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.org/ui"> 
<h:head> 
</h:head> 
<h:body> 
    <h:form> 
    <p:contentFlow value="#{images.images}" var="image"> 
     <p:graphicImage name="/images/#{image}" styleClass="content" /> 
     <div class="caption">#{image}</div> 
    </p:contentFlow> 
    </h:form> 
</h:body> 
</html> 

我创建了一个最小的再生例子,它通过GitHub的可以在这里找到https://github.com/schuettec/jsf-question。这是一个完整的Maven项目,重现了这个问题。

如果JSF/Primefaces专家的某人能够看一看这个问题,我将不胜感激。我喜欢JSF和Primefaces组件,并且真的很想理解这里的错误。

预先感谢您!

回答

1

您的代码是正确的。我认为这是一个错误或功能。

  • 添加2张图片 - >示出了1 PIC
  • 添加3个PCIS - >示出了3张图片
  • 添加4张图片 - >示出了3张图片
  • 添加5张图片 - >示出了5张图片

您可以使用primefaces的最终版本。

<dependency> 
     <groupId>org.primefaces</groupId> 
     <artifactId>primefaces</artifactId> 
     <version>6.0</version> 
    </dependency> 
+0

感谢这个信息!我在列表中添加了太少的图像。我认为组件的行为非常混乱。这是一个概念证明,需要花费数小时,因为我认为这是我在配置JSF时的错误.-- – UNIQUEorn

+0

不客气。那么祝你好运吧。 – jklee