Fala galera,
Estou tendo um problema ao utilizar o ajax do a4j.
Tenho um menu que é montado utilizando dois ui:repeat do facelets.
Ele funciona tranquilamente, mas quando tentei utilizar o a4j, ao fazer uma requisição via ajax está dando um erro.
Depois de muito tempo de depuração encontrei o problema.
Quando uma requisição é feita via ajax, a variável do ui:repeat de fora perde o escopo ao entrar no ui:repeat contido dentro dele.
No meu caso essa variável é “módulo” do código abaixo.
<ui:repeat value="#{modulos}" var="modulo">
<li>
<a href="#1">#{modulo.nome}</a>
<ul>
<a4j:repeat value="#{usuario.funcionalidades}" var="func">
<h:panelGroup rendered="#{func.modulo.id eq modulo.id}">
<li>
<h:commandLink value="#{func.nome}" action="#{menuMB.redirect}" >
<f:param name="url" value="#{func.url}" />
</h:commandLink>
</li>
</h:panelGroup>
</a4j:repeat>
</ul>
</li>
</ui:repeat>
O erro acontece exatamente nesta linha:
<h:panelGroup rendered="#{func.modulo.id eq modulo.id}">
Nesta linha a variável modulo perde o seu escopo e isto só acontece quando utilizo uma requisição ajax do a4j.
Estou utilizando: myfaces + facelets.
Abraços.