【问题标题】:PrimeFaces DataTable “No records found” when there are recordsPrimeFaces DataTable “No records found”当有记录时
【发布时间】:2014-08-15 15:09:01
【问题描述】:

我正在关注 Java EE 应用程序中的 PrimeFaces 开发入门视频教程。

https://netbeans.org/kb/docs/javaee/javaee-gettingstarted-pf-screencast.html

一切都很顺利,直到教程结束时,当客户表中有记录时,我的数据表中出现“未找到记录”。

下面列出了我的 index.xhtml 代码。

<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        Hello from Facelets
        <br />
        <h:link outcome="welcomePrimefaces" value="Primefaces welcome page" />
        <br />
        <f:view>


            <h:form>
                <h1><h:outputText value="List"/></h1>
                <p:dataTable value="#{customerFacade.customers}" var="item" >
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="CustomerId"/>
                        </f:facet>
                        <h:outputText value="#{item.customerId}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Name"/>
                        </f:facet>
                        <h:outputText value="#{item.name}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Addressline1"/>
                        </f:facet>
                        <h:outputText value="#{item.addressline1}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Addressline2"/>
                        </f:facet>
                        <h:outputText value="#{item.addressline2}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="City"/>
                        </f:facet>
                        <h:outputText value="#{item.city}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="State"/>
                        </f:facet>
                        <h:outputText value="#{item.state}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Phone"/>
                        </f:facet>
                        <h:outputText value="#{item.phone}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Fax"/>
                        </f:facet>
                        <h:outputText value="#{item.fax}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Email"/>
                        </f:facet>
                        <h:outputText value="#{item.email}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="CreditLimit"/>
                        </f:facet>
                        <h:outputText value="#{item.creditLimit}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="DiscountCode"/>
                        </f:facet>
                        <h:outputText value="#{item.discountCode}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Zip"/>
                        </f:facet>
                        <h:outputText value="#{item.zip}"/>
                    </p:column>
                </p:dataTable>
            </h:form>
        </f:view>

    </h:body>
</html>

知道问题出在哪里吗? 我找到了有同样问题的人并尝试了他的解决方案。但是,它不起作用。

(PrimeFaces DataTable "No records found" when there are records)

关于如何解决这个问题的任何建议?

编辑:

我的 CustomerFacade.java 文件中有这个

   public List<Customer> getCustomers()
    {
        return em.createNamedQuery("Customer.findAll").getResultList();
    }

【问题讨论】:

标签: jsf-2 primefaces datatable


【解决方案1】:

请确保您的支持 bean 方法 getCustomers() 在被调用时返回客户列表。

【讨论】:

  • 您好,getCustomers() 在被调用时返回客户列表。请参阅我上面的更新代码。有什么解决办法吗?谢谢!
  • 呃,您确认调用了该方法并且列表不为空吗?只需放置一个调试断点或添加一个穷人的System.out.println(customers) 行。这样,您可以轻松排除问题是在 JPA 中还是在 JSF 中,然后在必要时重新表述问题。
  • 好的。这太奇怪了。我尝试放置一个调试断点,并做了一个步骤…… System.out.println 被调用了。数据客户得到了展示。我尝试再次运行它,客户数据现在完美显示。我不知道问题出在哪里... =.='
  • 显然重建/重新部署/重新启动失败或者甚至没有发生。
猜你喜欢
  • 2013-02-05
  • 2021-07-30
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多