【问题标题】:Primefaces ContentFlow does not render the full contentPrimefaces ContentFlow 不呈现完整内容
【发布时间】:2017-04-19 04:54:47
【问题描述】:

我正在尝试使用名为 contentFlow 的 Primefaces JSF 组件,此处演示:http://www.primefaces.org/showcase/ui/multimedia/contentFlow.xhtml

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

我搜索了很多,还找到了 Primefaces 组件的文档来验证我的 XHTML。我还更改了 JSF 日志级别以查看所有调试消息,但 JSF 一直告诉我一切都很好。

除了项目的配置之外,我所做的只是展示中所说的。以下是我的设置摘要:

  • 我在 Windows x64 上使用 Apache Tomcat 8.0.39
  • Firefox 50.0.2 和 Chrome 版本 55.0.2883.75 m(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 组件,真的很想了解这里有什么问题。

提前谢谢你!

【问题讨论】:

标签: jsf primefaces contentflow


【解决方案1】:

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

  • 添加 2 张图片 -> 显示 1 张图片
  • 添加 3 个 pcis -> 显示 3 个图片
  • 添加 4 张图片 -> 显示 3 张图片
  • 添加 5 张图片 -> 显示 5 张图片

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

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

【讨论】:

  • 感谢您提供此信息!我在列表中添加的图像太少。我认为组件的行为非常令人困惑。这是一个概念验证,花了几个小时,因为我认为配置 JSF 是我的错-.-
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2012-03-20
相关资源
最近更新 更多