Não consigo carregar resultados usando Primefaces e JSF

Olá estou com um problema no meu aplicativo java web usando
JSF e primefaces, na classe Fornecedor Bean uso a anotation
@PosConstruct para que a página primefaces já inicie com o
cadastro de fornecedores, mas por algum motivo isso não acontece
nada carrega, abaixo lista de coisas que já tentei,

  • instalar mysql jar mais recente
  • registrar driver mysql
  • limpar projeto
  • reconstruir projeto
  • reinstalar servidor
    mas como os método listar da classes dao estão funcionando
    me vêem a cabeça que o problema seja no arquivo xhtml, bem não tenho
    certeza. vou postar os códigos das classes se alguém puder
    me ajudar sou grato.

Classe fornecedores.xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<ui:composition xmlns=“http://www.w3.org/1999/xhtml
xmlns:ui=“http://java.sun.com/jsf/facelets
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:p=“http://primefaces.org/ui
template="/templates/modeloSistema.xhtml"
value="#{MBFornecedores.itens}"
var=“item”>
<ui:define name=“menu”>
<ui:include src="/includes/menu.xhtml"/>
</ui:define>

<ui:define name=“conteudo”>
<h:form>
<p:dataTable emptyMessage=“Nenhum registro encontrado!”>

<p:column headerText="Descrição">
<h:outputText value="#{item.descricao}"/>

</p:column>

</p:dataTable>
</h:form>
</ui:define>
</ui:composition>

FornecedorBean

package br.com.farmacia.bean;

import java.sql.SQLException;
import java.util.ArrayList;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.ListDataModel;

import br.com.farmacia.DAO.FornecedoresDAO;
import br.com.farmacia.domain.Fornecedores;

@ManagedBean(name = “MBFornecedores”)
@ViewScoped
public class FornecedoresBean {
private ListDataModel itens;

public ListDataModel getItens() {
return itens;
}

public void setItens(ListDataModel itens) {
this.itens = itens;
}

@PostConstruct
public void prepararPesquisas()
{
System.out.println(“Cheguei aqui.”);
try {
FornecedoresDAO fdao = new FornecedoresDAO();
ArrayList lista = fdao.listar();

	itens = new ListDataModel<Fornecedores>(lista);
} catch(SQLException e) {
	e.printStackTrace();
}
}

}

Tenta assim:

E no arquivo Xhtml

Por favor explica melhor que tipo de objeto é esse que você esta colocando na lista de itens.

Obrigado andrebmarinho mas não adiantou ainda eu acho que é problema na tabela do primefaces que não mostra.

Olá @rafaelblanco

Vamos ver se eu consigo te ajudar.

Todo Bean que tem um escopo maior que de requisição, tem que ser Serializable. Tem que certeza que não esta dando erro ai?

Coloque implements Serializable no seu Bean, ficando assim:

@ManagedBean(name = “MBFornecedores”)
@ViewScoped
public class FornecedoresBean implements Serializable {

Vi que em nenhum momento voce passa a sua lista para o datatable. E outra, faz um tempo que não é mais necessário criar um listDataModel para popular a sua datatable, pode ser apenas uma lista mesmo.

@ManagedBean(name = “MBFornecedores”)
@ViewScoped
public class FornecedoresBean implements Serializable {
    
    ...
    private List<Fornecedores> fornecedores;   

    @PostConstruct
    public void init() {

        ...
        fornecedores = fornecedoresDAO.listar();
    }

    //Get e Set
}
<p:datatable value="#{fornecedoresBean.fornecedores}" var=“item” emptyMessage=“Nenhum registro encontrado!”>

Não adiantou mas mesmo assim obrigado mas me ajudem aqui preciso entregar os exercicios e não tenho certeza se acertei. Poderiam me ajudar com essas cinco questões, já respondi mas preciso tirar uma nota boa, podem conferir as respostas