Session JSF 2.2:PhaseListener只能在会话的第一次请求之前运行

Session JSF 2.2:PhaseListener只能在会话的第一次请求之前运行,session,jsf-2.2,phaselistener,Session,Jsf 2.2,Phaselistener,我正在使用一个在RESTORE_视图之前运行的PhaseListener,我需要知道它是否在当前会话中第一次运行(这样我就可以为保持登录的用户进行一些自动登录) 有什么提示吗?是的,你可以做这样的事。我有一个相同的相位侦听器: @Override public PhaseId getPhaseId() { return PhaseId.RESTORE_VIEW; } @Override public void beforePhase(PhaseEvent event) { Fa

我正在使用一个在RESTORE_视图之前运行的PhaseListener,我需要知道它是否在当前会话中第一次运行(这样我就可以为保持登录的用户进行一些自动登录)


有什么提示吗?

是的,你可以做这样的事。我有一个相同的相位侦听器:

@Override
public PhaseId getPhaseId() {
    return PhaseId.RESTORE_VIEW;
}

@Override
public void beforePhase(PhaseEvent event) {
    FacesContext ctx = FacesContext.getCurrentInstance();
    if (!ctx.isPostback()) {
    authRet = // check for active session
    if (!authRet) {
         if (...)// check for cookies { //create auth}
         else { // redirect to login }
    }
}

我正在创造一个无限循环:!发回利兹到重定向,这是再次!发回什么利兹重定向什么是再次!发回。。。那么你是如何得到authRet的呢?比如检查会话中是否有有效用户?好的,就是这样。我的情况现在看起来像是(!ctx.potsback()&&loginController!=null&&loginController.getCurrentUser()!=null)…我通常检查请求url是否是此类问题的登录url。如果这个答案对你有用,请接受它为正确答案。非常感谢。谢谢!是的,是的!