PrimeFaces p:dataTable从Bean获取值后页面不显示问题排查求助
p:dataTable不显示排查方案
- 检查页面PrimeFaces命名空间:确保xhtml页面头部引入了
xmlns:p="http://primefaces.org/ui"声明,缺省该配置时p前缀的标签不会被JSF解析渲染,浏览器会直接忽略对应节点。 - 适配空数据场景:给
<p:dataTable>标签新增emptyMessage="暂无数据"属性,若返回的empresas集合为空时会显示该提示,可排除空数据导致看不到表格的情况。 - 校验Bean注解导入正确性:确认@SessionScoped的导入包和@ManagedBean适配,若使用JSF自带的
@ManagedBean,必须导入javax.faces.bean.SessionScoped,错导入CDI的作用域注解会导致Bean无法被正确初始化,前端无法读取到数据。 - 排查CSS样式冲突:按F12打开浏览器开发者工具,检索dom中是否存在
p-datatable相关节点,确认外层tablaStock类是否配置了display:none、宽高为0等隐藏样式。 - 确认后端方法执行状态:检查后台日志是否输出了
empresas.size()的正确数值,若无输出说明@EJB注入的远程服务调用失败,empresas仍为null,需先排查远程服务的可用性。
修正参考代码
<!-- 页面头部必须引入PrimeFaces命名空间 --> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui"> <h:body> <h:form> <div class="tablaStock"> <p:dataTable var="stock" value="#{empresaFarmaciaBeanDTT.empresas}" emptyMessage="暂无企业数据"> <p:column headerText="Code"> <h:outputText value="#{stock.direccion}" /> </p:column> <p:column headerText="Name"> <h:outputText value="#{stock.departamento}" /> </p:column> </p:dataTable> </div> </h:form> </h:body> </html>
内容的提问来源于stack exchange,提问作者Agustin Rodriguez
相关产品推荐
相关产品推荐

