Como terminar um Managed Bean de sessão em jsf? e como definir a duração da sessão?
jsf2
bem… tem umas anotacoes como
@SessionScoped (objetos na sessao)
@viewScoped -> diz que os dados estaram vivos enquanto a tela for vista(evita ficar jogando objetos na sessao)
eu utilizo bastante esses dois
pessoal abaixo deve saber mais
[quote=maxmustang]bem… tem umas anotacoes como
@SessionScoped (objetos na sessao)
@viewScoped -> diz que os dados estaram vivos enquanto a tela for vista(evita ficar jogando objetos na sessao)
eu utilizo bastante esses dois
pessoal abaixo deve saber mais[/quote]
è mesmo isso que eu uso. mas se eu quiser definir o tempo de duração da sessão como faço??
eu tambem odeio jogar objectos na sessão acho isso muito ruim.
e se eu quiser fechar um managed bean de sessão ( tirar o objecto da sessão)???
Olá, para retirar ou resetar um manager bean de session basta remover ou recriar retirando ou colocado a entrada no map da sessão:
[code]//remover:
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove(“ManagerBean”);
//recriar:
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(“ManagerBean”, new ManagerBean());
[/code]
Até
Legal, valeu
E se eu quiser pegar um atributo de um ManageBean em session em outro managerBean como faço?
Desde já agradeço a todos.
@ManagedProperty(value = "#{loginMB}")
private LoginMB loginMB;
depois usa o MB LoginMB como se fosse uma variavel de instancia normal da classe.
e nao esqueçe de meter o get e o set do LoginMB
Olá amigos,
Gostaria de saber qual a diferença na situação seguinte:
Eu tenho um managedBean para o processo de login e este está com o escopo Session. Pois bem, qual a diferença de utilizar a 1a maneira e a 2a?
1a)
setUsuarioLogado(tResult.getUsuario());
- tResult.getUsuario() proveniente do retorno de um método BO > DAO > BD
e
2a)
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("currentUser", tResult.getUsuario());
Um exemplo de utilização para o primeiro caso é na parte de menu do meu sistema. Ao efetuar o login, eu terei que trocar os botões do topo da página (Login e Registre-se). Ai eu iria utilizar este bean direto para renderizar os componentes com a propriedade rendered.
... rendered=#{loginBean.usuarioLogado != null}
Mas antes de utilizar como na 1a forma, gostaria de saber se a 2a maneira é mais recomendada ou se não há diferença sendo que os 2, no meu ver estão na sessão (ou melhor, o segundo será inserido “manualmente”).
O legal da 1a maneira é que eu nao preciso, nas minhas páginas, chamar outro metodo para verificacao da sessao e retorno. Eu seto la direto no rendered se devo mostrar ou nao ou até mesmo mostro o nome do usuario logado num output.
Sds,
Rodrigo