PrimeFaces ViewExpiredException после перезагрузки страницы
У меня есть wrapper 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 с MyFaces 2.0.7, работающим на WebSphere 7.0.
Ответы
Ответ 1
Если у вас много ( > 15) страниц/представлений/кадров, которые одновременно открываются в сеансе, то может быть полезно следующее.
Вам нужно взглянуть на:
1. numberOfViewsInSession: определяет количество состояний (страниц верхнего уровня) для поддержки операции с кнопками
2. numberOfLogicalViews: определяет количество логических представлений (кадров), которые могут присутствовать на странице (в представлении верхнего уровня)
Быстрое действие, чтобы убедиться, что это важно, чтобы установить эти числа на 500 и увидеть
Если они релевантны, то вы можете найти дополнительную информацию по следующим ссылкам:
http://www.java.net/node/681211
Проблема с numberOfViewsInSession и несколькими вкладками