Java EE6/CDI JSF2 Primefaces 3.3.1。我创建了一个搜索页面,其中包含一些用于生成搜索结果表的级联下拉列表如果我使用 jsf:
<h:dataTable var="_employeeVList" value="#{employeeVProducer.employeeVList}" rendered="#{not empty employeeVProducer.employeeVList}">
<f:facet name="header">
Employee Search Results
</f:facet>
<h:column>
<f:facet name="header">Area</f:facet>
<h:outputText value="#{_employeeVList.areaName}" />
</h:column>
...
</h:dataTable>
表格呈现输出,html 看起来很正常。但是当我改为primefaces时:
<p:dataTable var="_employeeVList" value="#{employeeVProducer.employeeVList}" rendered="#{not empty employeeVProducer.employeeVList}">
<f:facet name="header">
Employee Search Results
</f:facet>
<p:column>
<f:facet name="header">Area</f:facet>
<h:outputText value="#{_employeeVList.areaName}" />
</p:column>
...
</p:dataTable>
表不显示。当我用 firebug 查看源代码时,我发现 html 有点奇怪:
<table id="searchForm:results">
<tbody>
<tr>
<td>
<p:datatable rendered="true" value="[com.raytheon.myPkg.EmployeeV@f486, com.raytheon.myPkg.EmployeeV@88fe, com.raytheon.myPkg.EmployeeV@adaf,
...
com.raytheon.myPkg.EmployeeV@6a5b]"
var="_employeeVList">
<p:column></p:column>
<p:column></p:column>
...
</p:datatable></td>
</tr>
</tbody>
</table>
对象在标签标签中,列是空的。在页面的其他地方,我正在使用 p:panelGrid,它包含下拉列表并且可以正确显示。
我的默认模板页面中有 h:head 和 h:body。
该表由有状态的请求范围 bean 支持。
我没有使用任何外部 JavaScript。
我究竟做错了什么?