Я пытаюсь отслеживать использование просмотров (приближаясь к лимиту в 15 единиц по умолчанию), но не совсем уверен, где получить эту информацию. Доступно ли это где-нибудь в FacesContext?
Использование JSF 2.2, ICEfaces 3.3 и Omnifaces 2.2.
Я пытаюсь отслеживать использование просмотров (приближаясь к лимиту в 15 единиц по умолчанию), но не совсем уверен, где получить эту информацию. Доступно ли это где-нибудь в FacesContext?
Использование JSF 2.2, ICEfaces 3.3 и Omnifaces 2.2.
Это зависит от реализации и доступно только при использовании сохранения состояния на стороне сервера.
Основываясь на истории ваших вопросов и вашем соответствующем отчете о проблемах OmniFaces, я сделал вывод, что вы используя GlassFish и, таким образом, Mojarra. Физические представления доступны как атрибут сеанса с ключом com.sun.faces.renderkit.ServerSideStateHelper.LogicalViewMap
.
Таким образом, так:
Map<String, Map<String, Object[]>> physicalViews = Faces.getSessionAttribute("com.sun.faces.renderkit.ServerSideStateHelper.LogicalViewMap");
String numberOfViews = physicalViews.size();
// ...
Обратите внимание, что Mojarra непреднамеренно поменял местами значения физических представлений и логических представлений как в именах параметров контекста, так и в кодовой базе. Таким образом, максимальный размер приведенной выше карты (физических представлений) настраивается с помощью com.sun.faces.numberOfLogicalViews
, а максимальный размер вложенной карты (логических представлений) настраивается с помощью com.sun.faces.numberOfViewsInSession
.