Boa tarde.
Estou usando phaselistner para o login do meu sistema.
O codigo esta funcionando, porem gostaria que meu phaselistner fosse chamado somente depois do meu bean, nao precisando assim dar dublo clique em “logar”.
Vou colocar o codigo para esclarecer
Bean
public void verificarbean() {
ld = new LoginDao();
log = ld.verificar(l);
FacesContext contexto = FacesContext.getCurrentInstance();
sessao = (HttpSession) contexto.getExternalContext().getSession(true);
sessao.setAttribute("log", log);
Login laux = new Login();
laux = (Login) sessao.getAttribute("log");
phaselistner
[code] public void afterPhase(PhaseEvent event) {
try {
FacesContext contexto = event.getFacesContext();
String paginaAtual = contexto.getViewRoot().getViewId();
boolean isLoginPage = paginaAtual.lastIndexOf("Login.xhtml") > -1;
HttpSession sessao = (HttpSession) contexto.getExternalContext().getSession(false);
Login login = new Login();
login = (Login) sessao.getAttribute("log");
if (isLoginPage && login.getTipo().equals("administrador")) {
NavigationHandler nh = contexto.getApplication().getNavigationHandler();
nh.handleNavigation(contexto, null, "admin");
}
else if (isLoginPage && login.getTipo().equals("comum")) {
NavigationHandler nh = contexto.getApplication().getNavigationHandler();
nh.handleNavigation(contexto, null, "padrao");
}
else if (!isLoginPage && !login.getTipo().equals("commum") || !login.getTipo().equals("administrador")) {
NavigationHandler nh = contexto.getApplication().getNavigationHandler();
nh.handleNavigation(contexto, null, "login");
}
} catch ( Exception e) {
}
}[/code]
O que está acontecendo é que ele passa pelo meu phaselistner antes de rodar o meu Bean, e gostaria que fosse ao contrario.
Nao sei se isso é possivel
Muito Obrigado