@Override public String getWindowId(FacesContext facesContext) { ExternalContext externalContext = facesContext.getExternalContext(); Map<String, Object> requestMap = externalContext.getRequestMap(); // try to lookup from cache String windowId = (String) requestMap.get(WINDOW_ID_REQUEST_MAP_KEY); if (windowId != null) { return windowId; } ClientWindowRenderMode clientWindowRenderMode = clientWindowConfig.getClientWindowRenderMode(facesContext); if (ClientWindowRenderMode.NONE.equals(clientWindowRenderMode)) { // if this request should not get any window detection then we are done windowId = DEFAULT_WINDOW_ID; } else if (ClientWindowRenderMode.DELEGATED.equals(clientWindowRenderMode)) { windowId = ClientWindowAdapter.getWindowIdFromJsf(facesContext); } else if (ClientWindowRenderMode.LAZY.equals(clientWindowRenderMode)) { windowId = ClientWindowHelper.getInitialRedirectWindowId(facesContext); if (StringUtils.isEmpty(windowId)) { windowId = externalContext.getRequestParameterMap().get(DELTASPIKE_WINDOW_ID_URL_PARAM); } if (StringUtils.isEmpty(windowId)) { if (this.jsfModuleConfig.isInitialRedirectEnabled()) { ClientWindowHelper.handleInitialRedirect(facesContext, generateNewWindowId()); facesContext.responseComplete(); windowId = null; } else { windowId = generateNewWindowId(); } } } else if (ClientWindowRenderMode.CLIENTWINDOW.equals(clientWindowRenderMode)) { if (facesContext.isPostback()) { windowId = getPostBackWindowId(facesContext); } else if (isNoscriptRequest(externalContext)) { // the client has JavaScript disabled clientWindowConfig.setJavaScriptEnabled(false); windowId = DEFAULT_WINDOW_ID; } else { windowId = getVerifiedWindowIdFromCookie(externalContext); boolean newWindowIdRequested = false; if (AUTOMATED_ENTRY_POINT_PARAMETER_KEY.equals(windowId)) { // this is a marker for generating a new windowId windowId = generateNewWindowId(); newWindowIdRequested = true; } if (windowId == null || newWindowIdRequested) { // GET request without windowId - send windowhandlerfilter.html to get the windowId sendWindowHandlerHtml(externalContext, windowId); facesContext.responseComplete(); } } } // we have a valid windowId - set it and continue with the request if (windowId != null) { requestMap.put(WINDOW_ID_REQUEST_MAP_KEY, windowId); } return windowId; }