Pessoal tem como me ajudarem a entender o keepAlive?
Andei lendo e 'estava' achando que ele mantinha o estado do bean de request quando eu fizesse alguma requisição, mas quando eu mudo de pagina e volto o meu inputText ta vazio.
<h:form><a4j:keepAlivebeanName="beanOneRequest"/><rich:panel><div><span><h:outputLabelvalue="Nome Bean Um: "/><h:inputTextvalue="#{beanOneRequest.nome}"/></span></div><div><span><a4j:commandButtonaction="#{beanDoisRequest.exibir}"value="redirecionar para bean dois"/></span></div></rich:panel></h:form></html>
Quando eu clico no commandButton e vou para o beanDoisRequest e volto para esse pagina o inputText ta vazio mesmo eu digitando um nome, alguem pode me ajudar?
Ele mantém o estado enquanto houver vinculo de uma “pagina” com um bean!
No seu caso, vc esta chamando beanDoisRequest! Se a pagina que esta vinculada com seu beanDoisReuqest nao conter <a4j:keepAlive beanName=“beanOneRequest”/> ele nao vai manter o estado.
Os beans nesse caso devem implementar Serializable.
evertonsilvagomesjav
apalmeira:
Ele mantém o estado enquanto houver vinculo de uma “pagina” com um bean!
No seu caso, vc esta chamando beanDoisRequest! Se a pagina que esta vinculada com seu beanDoisReuqest nao conter <a4j:keepAlive beanName=“beanOneRequest”/> ele nao vai manter o estado.
Os beans nesse caso devem implementar Serializable.
Opa cara, vou testar e posto aqui.
Mas so te perguntar, no caso eu quero manter o estado do meu beanOneRequest eu preciso colocar os dois no keepAlive entao? Tanto o que eu quero manter o estado quando ao bean que irei chamar?
A
apalmeira
Isso mesmo!
A sua segunda página deve ficar assim:
<a4j:keepAlive beanName=“beanOneRequest”/>
<a4j:keepAlive beanName=“beanTwoRequest”/>
evertonsilvagomesjav
Hum, eu testei e vi aqui, se eu colocar na minha primeira pagina o <a4j:keepAlive beanName=“beanTwoRequest”/>
quando eu vir da segunda pagina para ela ele mantem o estado da segunda, uma pagina mantem o estado da outra ou melhor dizendo um bean mantem o estado do outro?
A
apalmeira
Na verdade o keepalive vai serializar seu bean e depois vai carrega-lo novamente na outra pagina. Ele é o responsável por manter o estado.
evertonsilvagomesjav
Mas entao sempre que eu quiser manter o estado de um bean, eu tenho que coloca-lo no keepAlive da outra pagina que irei redirecionar né?