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