如何计算用户的 JSF 会话 (JSF 2.2) 中的查看次数?
How do I count the number of views in a user's JSF session (JSF 2.2)?
我正在尝试跟踪视图使用情况(接近默认的 15 计数限制)但不太确定从何处获取此信息。它在 FacesContext 的某个地方可用吗?
使用 JSF 2.2、ICEfaces 3.3 和 Omnifaces 2.2。
它是特定于实现的,只有在使用服务器端状态保存时才可用。
根据您的问题历史记录和您的相关 OmniFaces issue report, I gather that you're using GlassFish and thus Mojarra. The physical views are available as a session attribute keyed by 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
.
配置
另请参阅:
- com.sun.faces.numberOfViewsInSession vs com.sun.faces.numberOfLogicalViews
我正在尝试跟踪视图使用情况(接近默认的 15 计数限制)但不太确定从何处获取此信息。它在 FacesContext 的某个地方可用吗?
使用 JSF 2.2、ICEfaces 3.3 和 Omnifaces 2.2。
它是特定于实现的,只有在使用服务器端状态保存时才可用。
根据您的问题历史记录和您的相关 OmniFaces issue report, I gather that you're using GlassFish and thus Mojarra. The physical views are available as a session attribute keyed by 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
.
另请参阅:
- com.sun.faces.numberOfViewsInSession vs com.sun.faces.numberOfLogicalViews