Как очистить определенный вид в сеансе

Когда javax.faces.STATE_SAVING_METHOD установлен на сервер, состояние просмотра каждой страницы сохраняется на карте сеанса. Если я уже нахожусь в некотором представлении, и если я ввожу URL-адрес в браузере (запрос GET) на ту же страницу, будет создано новое представление. Теперь я хочу удалить существующее представление. Каков наилучший способ и место, чтобы очистить определенное более раннее представление новым GET-запросом, если у меня есть связанный ViewId, включенный в путь запроса get или в качестве параметра запроса GET. Большое спасибо за Вашу помощь.

1 ответ

Решение

Ты не можешь По крайней мере, не стандартными средствами API. Просто дайте ему истечь.

Если вы беспокоитесь об использовании памяти из-за нехватки памяти на целевом сервере и собираетесь использовать JSF в режиме без сохранения состояния и используете Mojarra 2.1.19 или более позднюю версию, просто используйте

<f:view transient="true">

Таким образом, JSF вообще не будет сохранять состояние просмотра. Имейте в виду, что логическим следствием является то, что вы больше не можете использовать область просмотра. Бины с областью видимости будут вести себя как бины с запросом.

Альтернативой является уменьшение количества (логических) представлений по умолчанию в сеансе. См. Также com.sun.faces.numberOfViewsInSession против com.sun.faces.numberOfLogicalViews для точной работы.

Другие вопросы по тегам