我有<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和单选按钮不允许我与它们进行交互。
答案 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时才准备渲染。其他内容将在您重新加载页面时呈现。
希望这对您有帮助