Bom dia caros amigos do GUJ!
Estou encarando certas dificuldades em realizar um logout com sucesso em JSF! Ao clicar em um botão LOGOUT na minha página, a mesma restorna para a página de LOGIN. Até aí tudo bem. Mas depois, á partir desta página de LOGIN se tento logar novamente, acho que ele abre uma sessão nova para mim porém o conteúdo da minha página não aparece corretamente, ou seja, os conteúdos buscados dos BackingBeans! O que está acontecendo com esses meus beans alguem sabe? Estão invalidados ou algo assim? Todos eles estao com o escopo SESSION. Aqui, o codigo que utilizo para realizar o logout:
public String logout(){
setUsuario(new Usuarios());
_autenticado = false;
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
session.invalidate();
status = "logout";
return status;
}
Alguem poderia me ajudar pessoal?
Valeuuuu!
[quote=RenZasso]Bom dia caros amigos do GUJ!
Estou encarando certas dificuldades em realizar um logout com sucesso em JSF! Ao clicar em um botão LOGOUT na minha página, a mesma restorna para a página de LOGIN. Até aí tudo bem. Mas depois, á partir desta página de LOGIN se tento logar novamente, acho que ele abre uma sessão nova para mim porém o conteúdo da minha página não aparece corretamente, ou seja, os conteúdos buscados dos BackingBeans! O que está acontecendo com esses meus beans alguem sabe? Estão invalidados ou algo assim? Todos eles estao com o escopo SESSION. Aqui, o codigo que utilizo para realizar o logout:
public String logout(){
setUsuario(new Usuarios());
_autenticado = false;
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
session.invalidate();
status = "logout";
return status;
}
Alguem poderia me ajudar pessoal?
Valeuuuu![/quote]
Bastante trivial, vc está jogando agua no seu fogo!
Se os seus beans que ajudam a formar a pagina estão na seção e esta por sua vez é invalidade a consequencia é a má formação da pagina.
O que deve ser feito é a colocação desses seus beans no escopo de aplicação em vez do de seção :idea:
Fala Carlos_df_jar
Primeiramente, agradeço pela força aí parceiro! Então cara, já obtive uma evolução! Antes quando eu voltava pra página de login e entrava com login e senha novamente, ele nao carregava os beans corretamente. Agora, quando estou dando logout e entrando denovo com o mesmo LOgin e Senha ele volta legalzinho pra página, porém, se entrou com outro login e senha ele entra na página anterior. Hunf estranho viu cara! Não entendo muito sobre os escopos do jsf, se você ou alguém puder dar uma força e agradeço!
Vlwwww!
Abraços!
[quote=RenZasso]Fala Carlos_df_jar
Primeiramente, agradeço pela força aí parceiro! Então cara, já obtive uma evolução! Antes quando eu voltava pra página de login e entrava com login e senha novamente, ele nao carregava os beans corretamente. Agora, quando estou dando logout e entrando denovo com o mesmo LOgin e Senha ele volta legalzinho pra página, porém, se entrou com outro login e senha ele entra na página anterior. Hunf estranho viu cara! Não entendo muito sobre os escopos do jsf, se você ou alguém puder dar uma força e agradeço!
Vlwwww!
Abraços![/quote]
Bom dia, vou tentar ser mais direto na minha explicação, vc deve colocar os seus beans de construção da página no contexto da aplicação, eis uma meneira de se obter o contexto da aplicação:
[code]public class MyContexListener implements ServletContextListener {
private DatabaseManager manager = null;
public void contextInitialized(ServletContextEvent event){
try{
ServletContext context = event.getServletContext();
String url = context.getInitParameter("databaseUrl");
String login = context.getInitParameter("databaseLogin");
String password = context.getInitParameter("databasePassword");
manager = new DatabaseManager(url, login, password);
context.setAttribute("databaseManager", manager);
}
catch(Exception e){}
}
}[/code]