2013-03-06 5 views
3

У меня есть обертку PrimeFaces.ajax.AjaxResponse для обработки ViewExpiredException (перезагрузки страницы):PrimeFaces 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.

+0

Пожалуйста, посмотрите на это http://stackoverflow.com/questions/4992526/how-to-handle-session-expiration-and-viewexpiredexception-in-jsf-2 –

ответ

1

Если у вас много (> 15) страниц/представлений/кадров, которые одновременно открываются в сеансе, то может быть полезно следующее.

Вы должны взглянуть на:

1. numberOfViewsInSession: определяет количество (верхнего уровня) Просмотр состояний (страниц) для поддержки назад кнопочное управление

2. numberOfLogicalViews: определяет количество логических представлений (кадров), которые могут отображаться на странице (на вид верхнего уровня)

Быстрое действие, чтобы убедиться в том, что важно установить эти числа на 500 и посмотреть Если они важны, вы можете найти более подробную информацию по следующим ссылкам:

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

Problem with numberOfViewsInSession and multiple tabs

+0

Но это не будет работать, если: 1) срок действия сессии истек 2) приложение было загружено –

Смежные вопросы