Boa tarde a todos!
Senhores, estou com uma dificuldade e gostaria da ajuda de vocês…
tenho um bean usado para a navegação entre as páginas… então coloquei métodos que alteram o valor de uma propriedade neste bean…
public class Navegacao implements Serializable{
private String principal = "./paginas/principal.xhtml";
...
public void DoCidades(ActionEvent event){
principal = "./paginas/cadastros/cadastroCidades.xhtml";
}
}
Então eu chamo o “DoCidades” de um PanelMenuItem do Richfaces…
<rich:panelMenu mode="ajax" style="width:200px"
iconExpandedGroup="disc" iconCollapsedGroup="disc"
iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right"
iconCollapsedTopGroup="chevronDown">
<rich:panelMenuGroup label="Cadastros">
<rich:panelMenuGroup label="Básicos">
<rich:panelMenuItem label="Cidades"
actionListener="#{Navegacao.DoCidades}"
ajaxSingle="true"
reRender="principal">
</rich:panelMenuItem>
...
No meu template, tenho um a4j:include para trocar o centro da página de acordo com o ítem selecionado no menu:
<rich:panel id="painelteste">
<a4j:outputPanel ajaxRendered="true" id="painel-conteudo">
<a4j:include viewId="#{Navegacao.principal}" id="principal" />
</a4j:outputPanel>
</rich:panel>
Fazendo desta forma, consigo renderizar apenas a parte da página que quero, porém, há um problema…
o a4j:include só faz a troca da página em uma segunda requisição ajax…
coloquei o #{Navegacao.principal} para ser exibido na tela… quando clico no menu, o valor do bean é alterado e exibido na tela,
porém, a página só é trocada caso eu clique novamente no ítem do menu, ou em qualquer outro componente que faça uma requisição ajax.
Alguém tem alguma idéia de onde eu estou errando ?
Utilizo JSF 1.2 + Richfaces + Facelets.
Agradeço a atenção.