Problemas com a4j:keepAlive

0 respostas
gustavodelgado

Olá pessoal,

Em alguns componentes em que preciso mudar dinamicamente suas propriedades, faço um binding para o mesmo e então seto a propriedade que eu quero no managed bean. Porém quando uso o para este managed bean, esta operação para de funcionar, é como se o componente não fosse renderizado novamente, pois os métodos são executados normalmente.
Vou postar um exemplo simples, para melhorar o entendimento:

<h:form>
            <a4j:keepAlive beanName="Login"/>

            <a4j:commandButton value="Mostra" action="#{Login.mostra}" ajaxSingle="true" reRender="grid1"/>
            <a4j:commandButton value="Oculta" action="#{Login.oculta}" ajaxSingle="true" reRender="grid1"/>

            <h:panelGrid id="grid1">
                <h:panelGrid id="grid2" binding="#{Login.grid2}">
                    <h:outputText id="texto1" value="texto do grid"/>
                </h:panelGrid>
            </h:panelGrid>
</h:form>

Fiz 2 botões e 2 métodos para mostrar ou ocultar o grid2. No managed bean está assim:

private HtmlPanelGrid grid2;

    public HtmlPanelGrid getGrid2() {
        return grid2;
    }

    public void setGrid2(HtmlPanelGrid grid2) {
        this.grid2 = grid2;
    }
   
   

    public void mostra(){
        grid2.setRendered(true);
    }
   
    public void oculta(){
        grid2.setRendered(false);
    }

Se eu remover o keepAlive, isto funciona bem, senão ele não atualiza o componente na tela.
Alguém já tentou fazer algo parecido?

Criado 13 de agosto de 2008
Respostas 0
Participantes 1