【问题标题】:Xpages: Code a new page button so that I can repopulate some fields in new XpageXpages:编写一个新页面按钮,以便我可以重新填充新 Xpage 中的某些字段
【发布时间】:2014-11-19 14:47:26
【问题描述】:

这似乎应该很容易做到,但我无法完成。

我有一个名为 Location 的 Xpage。有两种通用类型,A 和 B。我对 A 和 B 有一系列视图。除了那个字段的值之外,它们是相同的。

在视图中,我希望我的“新位置”按钮自动将类型填充为 A 或 B,具体取决于用户是在 A 视图还是 B 视图之一中。

似乎我会设置一个范围变量,然后在创建文档时检查它,但它似乎不起作用。这样做的最佳做法是什么?

【问题讨论】:

  • 我相信我发现了我的错误。我正在使用 requestScope,但似乎有一个错误,这不会继续到下一页;我更改为 sessionScope 并且它有效。使用后我清除了 sessionScope 变量。
  • 这不是错误。 requestScope 仅在请求本身期间存在。打开一个新的 XPages 至少需要 sessionScope。在这种情况下,即使 viewScope 也无法“生存”。

标签: xpages


【解决方案1】:

Jesse Gallagher 在 OpenNTF 上的霜冻框架(XPages Scaffolding - http://openntf.org/main.nsf/project.xsp?r=project/XPages%20Scaffolding&SessionID=DN6QBBFGEB)包括 flashScopes,它提供了将信息从一个页面传递到另一个页面并在页面加载时被清除的设施。

【讨论】:

【解决方案2】:

您可以使用 sessionScope 变量将数据从一个 XPage 传输到另一个。

更好的方法可能是为您的案例使用 URL 参数。

例如将&type=A 添加到您的网址中

http://server/database.nsf/Location.xsp?action=newDocument&type=A

然后您可以在目标 XPage 中使用param.type 读取此参数

var type = param.type;

sessionScope 的缺点是它对所有浏览器选项卡都是相同的。因此,在这种情况下,您需要在使用后立即将其删除。使用 URL 参数,您不必考虑这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2020-11-24
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多