Primefaces DataTable根本不渲染

时间:2014-08-24 21:32:42

标签: jsf primefaces datatables

我有<h:dataTable>呈现完美,但当我将其更改为p:dataTable时,它会完全消失

不幸的是我还无法上传图片,但同一页面上的其他PrimeFaces组件渲染效果非常好。

这是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:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Admin</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </h:head>
    <body>

    <ui:composition template="template.xhtml">

        <ui:define name="content">
            <div id="header">
                <div id="logo">
                    <h:form>
                        <h:link outcome="userHome">
                            <h:graphicImage value="resources/img/logo.png" alt="Monash South Africa - A campus of Monash Univeristy Australia"/>
                        </h:link>
                    </h:form>
                </div>

                <ul>
                    <h:form>
                        <li>Help</li>
                        <li><h:link value="Logout" outcome="login"></h:link></li>
                    </h:form>
                </ul>
            </div>

            <h:form id="adminHome">
                <p:menubar>
                    <p:menuitem value="Home" icon="ui-icon-home" url="faces/userHome.xhtml" style="margin-left: 0px !important; margin-right: 0px !important;"/>
                    <p:menuitem value="View Applications" icon="ui-icon-document" url="faces/userHome.xhtml" style="margin-left: 0px !important; margin-right: 0px !important;"/>
                    <p:submenu label="Manage" icon="ui-icon-document" style="margin-left: 0px !important; margin-right: 0px !important;">                        
                        <p:menuitem value="GPA Grants" url="#" style="padding-left: 0% !important; margin-left: 0% !important;"/>
                        <p:menuitem value="Achievement Levels" url="#" style="padding-left: 0% !important; margin-left: 0% !important;"/>
                        <p:menuitem value="Marks" url="#" style="padding-left: 0% !important; margin-left: 0% !important;"/>
                    </p:submenu>
                </p:menubar>

                        <h1><h:outputText value="List"/></h1>
                        <p:dataTable value="#{applicationFacade.applications}" var="item">
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Applicationid"/>
                                </f:facet>
                                <h:outputText value="#{item.applicationid}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Studentid"/>
                                </f:facet>
                                <h:outputText value="#{item.studentid}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Surname"/>
                                </f:facet>
                                <h:outputText value="#{item.surname}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Firstname"/>
                                </f:facet>
                                <h:outputText value="#{item.firstname}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Secondname"/>
                                </f:facet>
                                <h:outputText value="#{item.secondname}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Southafricanid"/>
                                </f:facet>
                                <h:outputText value="#{item.southafricanid}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Studyaddress"/>
                                </f:facet>
                                <h:outputText value="#{item.studyaddress}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Homeaddress"/>
                                </f:facet>
                                <h:outputText value="#{item.homeaddress}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Telnum"/>
                                </f:facet>
                                <h:outputText value="#{item.telnum}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Cellnum"/>
                                </f:facet>
                                <h:outputText value="#{item.cellnum}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Email"/>
                                </f:facet>
                                <h:outputText value="#{item.email}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Coursetitle"/>
                                </f:facet>
                                <h:outputText value="#{item.coursetitle}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Coursecode"/>
                                </f:facet>
                                <h:outputText value="#{item.coursecode}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Levelofstudy"/>
                                </f:facet>
                                <h:outputText value="#{item.levelofstudy}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Agree"/>
                                </f:facet>
                                <h:outputText value="#{item.agree}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Approvalcount"/>
                                </f:facet>
                                <h:outputText value="#{item.approvalcount}"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Accountid"/>
                                </f:facet>
                                <h:outputText value="#{item.accountid}"/>
                            </h:column>
                        </p:dataTable>
            </h:form>

        </ui:define>

    </ui:composition>


</body>
</html>

这是豆子:

package DataAccess;

import Entities.Application;
import java.util.List;
import javax.ejb.Stateless;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;


@Stateless
@Named
public class ApplicationFacade extends AbstractFacade<Application> {
    @PersistenceContext(unitName = "com.mycompany_WSAMS_war_1.0-SNAPSHOTPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public ApplicationFacade() {
        super(Application.class);
    }

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

我正在使用primefaces lib 4.0,有没有人知道如何解决这个问题,如果它有助于primefaces selectOneMenu和单选按钮不允许我与它们进行交互。

2 个答案:

答案 0 :(得分:0)

h:column代码更改为p:column(Primefaces列)。更改后,为我呈现数据表。

您甚至可以将列定义缩短为:

<p:column headerText="Applicationid">
   <h:outputText value="#{item.applicationid}"/>
 </p:column>

答案 1 :(得分:0)

您需要在<h:panelGrid id="yourID">周围添加dataTable。 当</h:panelGrid>关闭时,您可以放置​​<p:commandButton update="yourID" action="yourAction"/>

因为,仅在调用render时才准备渲染。其他内容将在您重新加载页面时呈现。

希望这对您有帮助