Ответ 1
Другая причина ViewExpiredException
заключается в том, что в сеансе создано слишком много логических представлений. Предел по умолчанию - это специфическая реализация JSF, и каждый синхронный запрос GET на конкретном представлении в основном создает новое представление. Например, когда вы используете Mojarra (который имеет предел по умолчанию 15) и запустите сеанс браузера и откройте один и тот же вид на 16 разных вкладках, а затем отправьте форму в 1-м, вы также можете получить это исключение, Предел настраивается с помощью специфического контекстного параметра реализации JSF, который com.sun.faces.numberOfLogicalViews
для Mojarra и org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION
в MyFaces (по умолчанию 20).
Это, однако, очень редкая проблема в реальном мире. Если ваш webapp действительно предназначен для использования таким образом (например, сайт социальной сети/сообщества, который приглашает к открытию на нескольких вкладках, таких как дискуссионный форум или Q & A), тогда вы можете вместо этого использовать сохранение состояния на стороне клиента.