Tenho uma aplicação com 2 beans. UsuarioMB @SessionScoped e LivroMB @ViewScoped.
Nas páginas que possuem ui:repeat ou p:dataTable com p:commandLink o método do action não é chamado. Parece que o motivo é pq o bean é reiniciado.
<ui:repeat id="categorias" value="#{usuarioMB.usuarioLogado.comentariosOutros}" var="comentario">
<p:panel id="panelComentario#{comentario.id}" header="#{comentario.data}" toggleable="true" toggleSpeed="300">
<h:panelGrid id="gridComentario#{comentario.id}" columns="2" cellpadding="5">
<p:commandLink action="#{usuarioMB.visualizarPerfil}" ajax="false">
<p:graphicImage value="resources/images/#{comentario.usuario.nomeImagem}" rendered="#{comentario.usuario.nomeImagem != null}" height="82" width="64" />
<h:outputText id="txtComentario#{comentario.id}" value="#{comentario.texto}" />
<f:setPropertyActionListener target="#{usuarioMB.usuario.id}" value="#{comentario.usuario.id}" />
</p:commandLink>
</h:panelGrid>
</p:panel>
<br/>
</ui:repeat>
Lembrando q esse código está dentro de:
<h:body>
<f:view>
<h:form id="formCabecalho">
</h:form>
</f:view>
</h:body>
Isso só acontece para estruturas de repetição.