用户之间是否共享JSF视图?

时间:2011-08-02 16:06:46

标签: jsf memory view sharing

我已将web.xml中会话属性中的逻辑视图和视图的数量定义为1,因此最多只有1个视图。鉴于此,我有几个问题:

  • 这是否特定于给定用户?这意味着,这会将每个用户的视图数限制为1吗? **如果是,是否可以在多个用户之间存在多个相同JSP的视图表示?

  • 有没有办法在用户之间共享JSF视图(假设视图非常通用且不包含任何用户特定数据)?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您的“用户”的通用定义实际上等于“HTTP会话”,那么是的,您是对的。视图基本上存储在HTTP会话中,并由名为javax.faces.ViewState的隐藏HTML输入字段引用。不同的HTTP会话不会彼此分享他们的观点,否则显然会是一个巨大的错误和安全漏洞。

通过将会话中的(逻辑)视图数设置为1,您可以消除用户在同一会话中的不同窗口/选项卡中使用包含POST表单的多个视图的可能性。每当最终用户打开一个新的窗口/选项卡时,只要最终用户在前一个窗口/选项卡中触发POST请求,最终用户就会收到ViewExpiredException,因为您已将其配置为仅保留一个在会话中查看,这是最后打开的会话。