Bom dia pessoal. Esse é meu primeiro post, apesar de acompanhar a comunidade a algum tempo e sempre encontro a resolução dos meus problemas no estudo do Java Web, nesse momento, estou estudando JSF.
O problema é mais ou menos o seguinte: Eu tenho uma pagina xhtml que possui um datatable e em cada linha possui um commandLink que ,em seu action, chama um método de um Managed bean que executa algumas rotinas e devolve uma string com o caminho da próxima página. Até esse momento tudo funciona perfeitamente como esperado, o problema começa nessa segunda página xhtml!! Nela, existe um mesmo datatable, que é populado pelo MB que o redirecionou e em cada linha um commandLink com um action para outro método de outro Managed Bean, só que ao clicar neste commandLink dá um refresh na página e sequer é chamado o método no MB.
Abaixo está o código do datatable e o MB que deveria ser chamado:
<h3>Projetos</h3>
<h:dataTable var="projeto" value="#{grupoMBean.projetos}" id="projDataTable" styleClass="table table-hover mx-auto">
<h:column>
<f:facet name="header">Título</f:facet>
#{projeto.titulo}
</h:column>
<h:column>
<f:facet name="header">Autor</f:facet>
#{projeto.autor}
</h:column>
<h:column>
<f:facet name="header">Cap.Publicados</f:facet>
</h:column>
<h:column>
<f:facet name="header">Status</f:facet>
#{projeto.status}
</h:column>
<h:column>
<f:facet name="header">Ações</f:facet>
<h:form id="actionsInsideDatatable">
<h:commandLink value="DETALHES " action="#{projetoMBean.carregarDetalhesProjeto}">
<f:setPropertyActionListener value="#{projeto.id}" target="#{projetoMBean.idProjeto}" />
</h:commandLink>
</h:form>
</h:column>
</h:dataTable>
E o método do Managed bean que deveria ser chamado:
public String carregarDetalhesProjeto() {
Projeto auxProj = new Projeto();
auxProj.setId(idProjeto);
projeto = daoProjeto.pesquisar(auxProj);
return "admin/info_projetos";
}
Já pesquisei em outros tópicos com comportamentos semelhantes mas não obtive sucesso na resolução. Vale ressaltar que o segundo MB é anotado com @ManagedBean e o mesmo é reconhecido pelo eclipse no autocomplete na EL, bem como se eu copiar todo o h:form e colá-lo fora do datatable o método é chamado (e dispara um belo de um IllegalArgumentException - o que era de se esperar).
De antemão agradeço a todos os colegas pela atenção prestada.
