Bom dia a todos, sou novo aqui no fórum e no desenvolvimento com JSF, ja encontrei um modo
de resolver o problema que estava passando, mas mesmo assim ele não esta funcionando
do jeito que gostaria, e não encontrei nada relacionado a isso nos topicos antigos.
bem, vamos ao que interessa…
Preciso apenas carregar os dados de uma Lista em um dataGrid, faço isso pela notação @PostConstruct,
até aí tudo bem, o metodo é executado e o grid preenchido, porém, possuo um command link dentro
desse grid e raparo que ao clikar em uma das linhas, o método para carregar a Lista é chamado
novamente, imagino que deve ser pelo ciclo de vida…existe alguma maneira de resolver isso ?
@ManagedBean(name = "areaBean")
@RequestScoped
public class AreaBean {
private static Class AreaDado;
private List<AreaDado> listArea = new ArrayList<AreaDado>();
AreaDado area = new AreaDado();
public void cadastraArea() {
GenericDao dao = new GenericDao(HibernateUtil.getSession(), AreaDado);
area.setCriado("wellington");
dao.salvar(area);
}
@PostConstruct
public void init() {
if (listArea.isEmpty() == true) {
listArea = preencheGrid();
}
}
<p:dataGrid var="area" value="#{areaBean.listArea}" columns="3"
rows="12" paginator="true" effect="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink}
{PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
<p:column>
<p:panel header="Área" style="text-align:center">
<h:panelGrid columns="1" style="width:100%">
<p:commandLink action="#{cienteBean.carregarTabelaCliente(area.codigo)}"
ajax="false">
<h:panelGrid columns="1" style="width:100%">
<h:outputText value="#{area.nome}" styleClass="labelPadrao"/>
<br> </br>
<h:outputText value="#{area.descricao}" styleClass="labelPadrao"/>
</h:panelGrid>
<f:setPropertyActionListener target="#{areaBean.area}" value="#{area}"/>
</p:commandLink>
</h:panelGrid>
</p:panel>
</p:column>
</p:dataGrid>