11.事件(Event Model)


Facelets
<f:event type="preRenderView" listener="#{login.forwardToLoginIfNotLoggedIn}" />

Managed Bean - ComponentSystemEvent
public void forwardToLoginIfNotLoggedIn(ComponentSystemEvent cse) {
        FacesContext fc = FacesContext.getCurrentInstance();
        String viewId = fc.getViewRoot().getViewId();

        if (!isUserLoggedIn() && !viewId.startsWith("/login")
                && !viewId.startsWith("/register")) {
            fc.getApplication().getNavigationHandler().
                    handleNavigation(fc, "#{user.action}",
                    "/login?faces-redirect=true");
        }
    }
Comments