刷新页面后出现PrimeFaces ViewExpiredException异常

3

我已经封装了PrimeFaces.ajax.AjaxResponse以处理ViewExpiredException(重新加载页面):

var handleViewExpired = function (viewId) {
    window.alert('${msg.ajax.viewExpired}');
    window.location.reload();
};

然而,有时在尝试点击任何调用AJAX请求的站点上的内容后,我会不断地遇到这个错误:

javax.faces.application.ViewExpiredException: /tree.xhtmlNo saved view state could be found for the view identifier: /tree.xhtml
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)

我刷新页面的方式是否有误?如果要进行完全的页面重新加载(比如在浏览器中点击重新加载),我该怎么做?需要删除cookies吗(JSESSIONID,oam.Flash.RENDERMAP.TOKEN)?

我正在使用运行在WebSphere 7.0上的MyFaces 2.0.7和PrimeFaces 3.5。


请查看此链接:https://dev59.com/yG445IYBdhLWcg3wLXWh - Serkan Arıkuşu
1个回答

1
如果您同时打开了许多(>15)个页面/视图/框架,则以下内容可能有用。
您需要查看:
1. numberOfViewsInSession:定义支持后退操作的(顶级)视图状态(页面)的数量
2. numberOfLogicalViews:定义可以显示在页面上的逻辑视图(帧)的数量(每个顶级视图)
快速确定是否相关的方法是将这些数字设置为500,然后查看结果。如果它们相关,则可以在以下链接中找到更多信息:

http://www.java.net/node/681211

在会话中使用numberOfViews和多个选项卡存在问题


但是当以下情况发生时,这种方法将无法奏效: 1)会话已过期 2)应用程序已重新加载 - Danubian Sailor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接