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)

我是否以错误的方式刷新?我应该怎么做才能调用整页重新加载,例如在浏览器中单击重新加载?我需要删除 cookie(JSESSIONID、oam.Flash.RENDERMAP.TOKEN)吗?

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

4

1 回答 1

1

如果您在会话中同时打开了许多 (>15) 页面/视图/框架,那么以下内容可能会有用。

你需要看看:

1. numberOfViewsInSession:定义(顶层)视图状态(页面)的数量,以支持后退按钮操作

2. numberOfLogicalViews:定义一个页面(每个顶层视图)可以呈现的逻辑视图(框架)的数量

确定是否相关的快速操作是将这些数字设置为 500,然后查看它们是否相关,然后,您可以在以下链接中找到更多信息:

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

numberOfViewsInSession 和多个选项卡的问题

于 2013-04-03T11:19:38.220 回答