Jsf Omnifaces在通过Jaas调用unload的sessiontimeout之后,结果是白色屏幕的Empty



我不知道后台到底是什么,我想知道:(。

复制步骤:

  1. 获取主页

  2. Jaas重定向到登录页面

  3. 登录。

  4. 登陆状态良好的页面!

  5. 等待会话退出

  6. 刷新页面

  7. Jaas重定向到登录页面

  8. 登录。

  9. 降落在白色屏幕上。(但重新加载后一切正常!(

通过调试,我评论道,第二次登录后卸载

private UIViewRoot unloadView(FacesContext context, String viewId) {
UIViewRoot createdView = createView(context, viewId);
ResponseStateManager manager = getRenderKit(context).getResponseStateManager();
if (restoreViewRootState(context, manager, createdView)) {
context.setProcessingEvents(true);
context.getApplication().publishEvent(context, PreDestroyViewMapEvent.class, UIViewRoot.class, createdView);
Hacks.removeViewState(context, manager, viewId);
}
else if (isSessionNew(context)) {
redirectPermanent(context, getRequestURIWithQueryString(context));
}
responseComplete();   // This row return with empty page
return createdView;
}

我认为第二次卸载帖子被JAAS捕获,而不是页面GET。但我不知道为什么。

谢谢你的回答!

我的解决方案在客户端。有一个JS方法,它是在sessiontimeout之后调用的。

我把这一行放在那个方法中:

OmniFaces.Unload.disable();

相关内容

最新更新