Из того, что я понимаю, ViewScoped beans уничтожается только при выполнении одного из следующих действий:
1) JSF отправляет запрос POST на другую страницу с чем-то вроде <h:commandLink...>
2) Количество открытых beans превышает максимальную настройку порога (по умолчанию 15)
3) Пользовательский сеанс истекает
Вот моя путаница:
Значит ли №1, что если пользователь переходит от страницы с запросом GET, bean останется открытым, даже если, в конце концов, POST JSF происходит на той же вкладке браузера на другой странице? Или все активные экземпляры @ViewScoped для этой вкладки браузера будут уничтожены после отправки отправления JSF независимо от того, на какой странице он находится?
Значит ли # 2, что пользователь может иметь 15 bean экземпляров, активных для каждого класса @ViewScoped? Или это 15 bean экземпляров, независимо от класса, то есть я мог бы иметь 5 экземпляров Class1, 5 экземпляров Class2 и 5 экземпляров Class3, а новый bean уничтожит самый старый активный bean?
Для # 3, если для STATE_SAVING_METHOD установлено значение "клиент", будут ли какие-либо последствия уничтожены в ViewScoped beans? Из того, что я помню, должен быть способ ручного управления истечением сеанса, если для STATE_SAVING_METHOD установлен клиент.
Наконец, существует ли способ управлять активным ViewScoped beans, чтобы они могли быть уничтожены, когда пользователь нажимает "logout", например?