Как очистить определенный вид в сеансе
Когда 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 для точной работы.