我目前正在使用一个pannel网格显示从数据库中恢复的一些数据,这工作正常,布局不完美但它显示所有正确的数据,但是我想使用数据表看起来比什么,我试图使用来自pannel网格的outputText但是当我运行页面时它只是说没有找到数据,但在同一页面上相同的代码显示pannel网格中的数据
我做错了什么?
这是工作面板网格的代码
<!-- heading -->
<f:facet name="header">
User Details
</f:facet>
<h:outputText value="#{bundle.ViewUserdetailsLabel_id}"/>
<!-- adding in a small effect here that will fade a message when a user hovers over the id number or username -->
<h:outputLink id="id1" value="#">
<h:outputText id="id" value="#{userdetailsController.selected.id}" title="#{bundle.ViewUserdetailsTitle_id}"/>
</h:outputLink>
<p:tooltip for="id" value="This is your I.D. Number" showEffect="fade" hideEffect="fade" />
<h:outputText value="#{bundle.ViewUserdetailsLabel_username}"/>
<h:outputLink id="username1" value="#">
<h:outputText id="username" value="#{userdetailsController.selected.username}" title="#{bundle.ViewUserdetailsTitle_username}"/>
</h:outputLink>
<p:tooltip for="username" value="Your registered username, this can be changed" showEffect="fade" hideEffect="fade" />
</p:panelGrid>
这是不可用的数据表
<p:dataTable>
<p:column >
<f:facet name="header">
<h:outputText value="{bundle.ViewUserdetailsLabel_id}"/>
</f:facet>
<h:outputText value="{userdetailsController.selected.id}" />
</p:column>
<p:column headerText="username" >
<f:facet name="header">
<h:outputText value="{bundle.ListUserdetailsTitle_username}"/>
</f:facet>
<h:outputText value="{userdetailsController.selected.username}" />
</p:column>
</p:dataTable>
你可以看到outputText值相同所以它应该正常工作吗?
感谢
答案 0 :(得分:1)
如果碰巧只有少数硬编码值以表格的形式显示,那么最好使用<h:panelGrid>
。但是,如果您有一个要迭代的对象列表并快速显示它们,请使用<p:dataTable>
。
假设我们有List
名员工
<p:dataTable var="employee" value="#{tableBean.employees}">
<p:column headerText="Name">
<h:outputText value="#{employee.name}" />
</p:column>
<p:column headerText="Age">
<h:outputText value="#{employee.age}" />
</p:column>
<p:column headerText="Sex">
<h:outputText value="#{employee.sex}" />
</p:column>
</p:dataTable>
然后你的桌子就像这样。在这种情况下,var
完全是任意的,如果你愿意,你可以称之为“蓬松”。 dataTable
可以使用很多设置,例如分页,导出,排序等。但我建议您熟悉Primefaces showcase