【问题标题】:Setting SessionScope on XPage open在打开的 XPage 上设置 SessionScope
【发布时间】:2015-09-08 20:36:17
【问题描述】:

我有一个带有视图的 Xpage,它显示基于 xpage 上 6 个字段的值的搜索结果(这些值在选择时分配给 sessionscope 变量,当搜索按钮为打)。这一切都很好,但我想改变的是,最初打开 xpage 时(在设置任何值之前)视图是空的。

为这个简单的问题道歉,但自 2006 年以来我没有接触过笔记,从那时起它发生了相当大的变化。

运行 8.5.2。

【问题讨论】:

  • 请尝试更具体地了解搜索类型(全文?键值?)。还显示一些示例代码,特别是关于搜索过滤器
  • 嗨,我一直在关注这个例子 (www-10.lotus.com/ldd/ddwiki.nsf/dx/…),所以是全文搜索。我真的想知道我是否问错了问题。有没有办法在您打开 xpage 时设置 sessioncop(或查看范围,感谢 Knut)(无论您在页面中做什么?)。如果您认为仍然需要,我会尽快发布代码(我目前手头没有)。谢谢。

标签: view xpages session-scope


【解决方案1】:

每个 bean 在作用域“初始化”时都会被实例化。对于第一次打开站点时的 sessionScope。对于 viewScope,它是在您第一次打开页面时(将在部分刷新后仍然存在)。这些范围内的变量只是该范围内的映射(即 bean)。

因此,要设置初始值,您可以使用真正的 bean - 只需在其构造函数中添加您需要的任何代码。

或者,如果你想使用 SSJS,你可以在加载页面时添加检查(例如在 beforePageLoad 事件中)。如果你在 sessionScope 中工作,你应该检查一个值是否已经设置 - 如果没有 -> 设置它。在 viewScope 中,您只需启动变量。

还有一个关于范围的词。如果可能的话,出于性能/可扩展性的目的,您应该始终更喜欢“更短”的时间范围。在my article about tuning XPages 中查看更多关于使用 sessionScope 的信息 :-)

/约翰

【讨论】:

    【解决方案2】:

    使用 viewScope 代替 sessionScope。

    viewScope 变量在当前浏览器选项卡中的当前 XPage 的持续时间内存在。如果您打开另一个 XPage 或在另一个选项卡中打开当前 XPage,则 viewScope 变量的值将消失。这就是您的情况所需要的。

    sessionScope 变量在浏览器中所有浏览器选项卡的用户会话期间持续存在。这就是为什么您当前的搜索值在另一个浏览器选项卡中设置为默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      相关资源
      最近更新 更多