Como popular um dataTable? [JSF 2]

Pessoal, como eu faço pra popular um datatable sem ter que fazer qualquer requisição?
Tenho um link que leva para uma página de exibição de registros, mas não existe qualquer necessidade de requisição pra isso.
Como eu faço para o dataTable executar a função de carregar os valores no list?

Esse é o código da página que terá os registros:

<ui:composition template="http://localhost:8080/Padrao/template/modelo.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:f="http://java.sun.com/jsf/core">
    <ui:define name="menu">
        <ui:include src="../modelos/menu.xhtml"/>
    </ui:define>
    <ui:define name="conteudo">
        <h:form> 
            <p:dataTable id="registros"
                         var="item"
                         value="#{controle.listDemandas}" //<<<< essa disgrama n faz porcaria nenhuma
                         paginator="true" rows="20"
                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
                         emptyMessage="Sem registros"
                         selectionMode="single">
                
                <f:facet name="header">
                    <p:outputPanel>
                        <h:outputText value="Procurar em todos os campos:" />
                        <p:inputText id="globalFilter" onkeyup="" style="width:150px; margin-left: 10px;" />
                    </p:outputPanel>
                </f:facet>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Título" />
                    </f:facet>
                    <h:outputText value="#{item.titulo}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Classificação" />
                    </f:facet>
                    <h:outputText value="#{item.classificacao}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Prazo" />
                    </f:facet>
                    <h:outputText value="#{item.prazo}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Status" />
                    </f:facet>
                    <h:outputText value="#{item.status}" />
                </p:column>
            </p:dataTable>

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

e esse é o mbean:

@ManagedBean(name = "controle")
public class Controle implements Serializable {

    Logging log;
    @EJB
    private ControleDao cdao;
    private String titulo;
    private String descricao;
    private String classificacao;
    private String status;
    private Date data;
    private Date prazo;
    private List<DemDemandas> listDemandas;
    
    public Controle() {
        log = new Logging("Demandas");
    }

    public String adicionarDemanda() {
        DemDemandas demandas = new DemDemandas();
        System.out.println(data);
        System.out.println(prazo);
        demandas.setTitulo(this.titulo);
        demandas.setData(this.data);
        demandas.setDescricao(this.descricao);
        demandas.setPrazo(this.prazo);
        demandas.setStatus(this.status);
        demandas.setClassificacao(this.classificacao);
        cdao.insert(demandas);
        return "relatorio";
    }

    public void getConsultaDemandas(){
        ArrayList list = new ArrayList();
        listDemandas = cdao.getFromNamedQueryParametrosOrdenados("DemDemandas.findAll", list);
    }

/* getters e setters... */ 

eu sei que está tudo funcionando, só não sei como falar pro datatable que ele tem que chamar primeiro o getConsultaDemandas() antes de carregar os dados.

Alguém me da uma força aew plz :smiley:

Vc ta chamando da sua pagina um listDemandas q no seu codigo não é populado em nenhum momento, por isso ele não exibe nada na table. Voce pode alterar o seu getConsultaDemandas pra devolver o list populado ou dentro do seu getlistDemandas chamar esse metodo getConsultaDemandas que pelo visto ja popula seu listDemandas.

[]'s

Oi thiagocg, obrigado pelo retorno. Como assim eu terei que popular antes?? Eu vou ter que alterar a o método para o tipo retorno?
algo assim marromenos?

public List<DemDemandas> getConsultaDemandas(){
        ArrayList list = new ArrayList();
        listDemandas = cdao.getFromNamedQueryParametrosOrdenados("DemDemandas.findAll", list);
        return listDemandas;
    }

Cara vc pode fazer no seu getListDemandas algo assim:

this.listDemandas = cdao.getFromNamedQueryParametrosOrdenados("DemDemandas.findAll", list);  

Ou se vc usar CDI usa um @produces.

Tem umas dicas muito boas sobre CDI + Weld neste blog:
http://blog.gilliard.eti.br/?s=%40produces

[]'s