【问题标题】:icefaces multiple window support for same sessionicefaces 对同一会话的多窗口支持
【发布时间】:2011-05-21 11:29:42
【问题描述】:

我有使用 ice:faces 制作的应用程序 .. 我想支持具有相同会话的多个窗口 有可能在 ice:faces 中使用吗? 在 web.xml 中 我已经放了这样的标签

<context-param>
<param-name>com.icesoft.faces.concurrentDOMViews</param-name>
<param-value>true</param-value>
</context-param>

我可以打开多个窗口,但问题是我不能同时从两个窗口进行更改。

【问题讨论】:

  • 当您尝试这样做时会出现什么问题?如果出现错误,请发布日志详细信息。
  • 如果打开多个窗口并刷新页面,那么我将从当前窗口注销。
  • 如果我写成 false 那么最后一个窗口更新会反映在另一个窗口上。

标签: java jsf icefaces


【解决方案1】:

来自 ICEfaces 文档:

启用并发 DOM 视图后, 每个浏览器窗口都明显 用视图编号和 DOM 标识 更新将正确应用于 相应的窗口。这个 介绍一些重要的 申请注意事项 数据模型。会话中的托管 bean 范围现在可以共享 多个视图同时进行。这个 可能是某些人想要的范围 州,但通常, 与演示相关的状态更多 适当地保留在请求范围内。

请求范围:对于典型的 视图相关状态,请求范围 bean 将通过大多数用户持续存在 交互但不是通过视图 变化。这是推荐范围 对于 ICEfaces 应用程序,使 使用多个窗口。

会话范围:对于必须是的状态 跨视图共享。

当您将参数设置为true 时,支持多个视图,但必须使用请求范围的bean。如果打开另一个窗口,可能会强制从当前会话中注销。

如果配置了并发 DOM 视图, 并且多个窗口由 用户,ICEfaces 使用单个 阻止连接传递 异步更新所有视图 会议。

当设置为false 支持单视图时,一个窗口中的更改会反映在另一个窗口中。

【讨论】:

  • 我也尝试过使用会话范围和 DOM,但它仍然给出相同的结果。将所有请求范围更改为会话不是一个可行的解决方案:)。
  • @chetan 我认为您误解并使用会话范围而不是请求范围的 bean 测试了该场景。为了可行性,这些事情需要在项目启动时考虑。
  • 如果我没记错的话,您想说将请求范围从会话更改为 loginBean,因为我使用 loginBean 作为登录时使用的 backingBean。是正确的解释吗?
  • 很抱歉造成这种误解
  • 它很好,但它应该与请求范围的 bean 一起正常工作,您的配置中可能存在一些问题。与其直接在您的项目中实现,不如尝试创建一个示例项目以清楚地整理这些内容。
猜你喜欢
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 2011-05-31
  • 1970-01-01
相关资源
最近更新 更多