Preciso de um bean com escopo de sessão, porém preciso que um atributo dele seja do escopo request.
O caso que preciso resolver com isso é o seguinte.
Tenho uma tela de pesquisa. A tabela de registros exibe os itens de uma propriedade do managed bean. Caso o usuário selecione um outro item do menu e depois retorne a essa tela de pesquisa, preciso que o sistema não exiba itens nela.
Sei que posso executar uma ação nessa transição, porém o componente (particular) que utilizo, não permite isso. Ele me permite apenas fazer redirecionamentos sem passar por métodos do managed bean de destino.
Declara os objetos que quer persistir na classe do MBean
Dentro do método do MBean eu seto o atributo na sessão
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
session.setAttribute("atributo", "valor");
Assim na próxima página eu tenho o meu vo populado com os valores setados
Só que tem que tomar cuidado ao usar sessão porque a gente tem que limpar ela quando o cara clicar em um botão cancelar por exemplo…
[]´s
maurenginaldo
Uma idéia seria usar um compoente ajax para antes do redirecionamento setar o seu atributo de request.
Veja se as bibliotecas que vc usa permite isso.