[DÚVIDA] Limpar dados da pagina anterior JSF

1 resposta
thimor

Ola, Gostaria de saber como posso limpar os dados da pagina anterior quando estou utilizando Beans de sessão no jsf. Segue um exemplo:

Se eu estiver nessa pagina de produtos:

utilizar a busca ou ate mesmo entrar na opcao de alterar um produto e por ventura aperte no link para fornecedor

executar alguma acao e voltar para produto os dados ainda estaram la, pois o escopo dos beans é de sessao. O que eu gostaria de saber é: Quando eu clicar no link para outra pagina da para limpar tudo q a pagina anterior colocou na sessao utilizando o PhaseListener? ou a solução seria utilizar determinados beans como request?

Exemplo de codigo que poderia ser utilizado, mas nao sei se é a melhor pratica.

public void limpaSessao() {
    HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
    Enumeration<String> en = session.getAttributeNames();
    while (en.hasMoreElements()) {
        String name = (String) en.nextElement();
        if(!name.equals("usuario")
                session.removeAttribute(name);
        }
}
//Outra possivel solução
public  class Autorizador implements PhaseListener {  
    public void beforePhase(PhaseEvent event) {
        FacesContext contexto = event.getFacesContext();  
        String paginaAtual = contexto.getViewRoot().getViewId();  
        //Colocaria o codigo de limpar sessao aqui.
}

1 Resposta

Kleber-rr

Olá bom dia.

COnseguiu resolver teu problema?? Sei que o post é antigo, mas estou passando por isso… Vlw.

Criado 26 de junho de 2010
Ultima resposta 5 de ago. de 2010
Respostas 1
Participantes 2