JSF-2-Umleitung problem

Habe ich folgende zwei Methoden in meinem backing-bean -

public String validateUser() {
    FacesContext facesCtx = FacesContext.getCurrentInstance();

    if(userName.equals("user1") && password.equals("pass1")) {
        User user = new User();
        user.setUserName(userName);
        HttpSession session = (HttpSession) facesCtx.getExternalContext().getSession(false);
        session.setAttribute(User.SESSION_ATTRIBUTE, user);
        return "secured/home.jsf?faces-redirect=true";
    }

    if(!userName.equals(LoginBean.USERNAME)) {
        FacesMessage msgForUserName = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Username did not match.", null);
        facesCtx.addMessage("loginForm:userName", msgForUserName);
    }

    if(!password.equals(LoginBean.PASSWORD)) {
        FacesMessage msgForPassword = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Password did not match.", null);
        facesCtx.addMessage("loginForm:password", msgForPassword);
    }

    return null;
}

public String logout() {
    logger.info("Logging out .........................................");
    FacesContext facesCtx = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) facesCtx.getExternalContext().getSession(false);
    session.invalidate();
    return "login.jsf?faces-redirect=true";
}

Ich weiß nicht, warum die Umleitung funktioniert in der ersten Methode (d.h. validateUser()), aber es funktioniert nicht bei der zweiten Methode (d.h. Abmelden()).
Der code innerhalb der logout-Methode tatsächlich ausgeführt wird, wird die Sitzung auch wird für ungültig erklärt,aber irgendwie hat der browser bleibt auf der gleichen Seite.
Und, ich bin mit PrimeFaces p:commandButton und ajax aktiviert ist beide.
Irgendeine, irgendeine Idee?
Danke.

InformationsquelleAutor Bhesh Gurung | 2011-05-23
Schreibe einen Kommentar