【问题标题】:XAgent breaks previous navigationXAgent 打破了以前的导航
【发布时间】:2020-08-11 21:45:28
【问题描述】:

如果我使用

context.redirectToPrevious()

效果很好,但是如果我在打开文档和关闭文档之间调用有或没有状态的 xagent。我最终导航到 xagent。 如果我直接转到后面的视图,我会在视图中打开已打开的类别。

有没有办法阻止 xpage 出现在导航/历史树中?

【问题讨论】:

  • 您可以使用 context.getHistoryUrl(x) 并将 x 设置为 2 以到达倒数第二页吗?

标签: xpages xpages-ssjs


【解决方案1】:

有两种可行的方法。

首先是使用客户端JavaScript打开XAgent。如何处理这取决于浏览器中是否设置了值,您将这些值传递给sessionScope 以供 XAgent 使用。如果没有,您可以只使用客户端 JavaScript 打开相关的 XAgent 页面。如果您确实需要值,有两种选择:

  1. 将它们作为查询字符串参数传递给 XAgent,而不是将它们存储为 sessionScope 变量。
  2. 执行部分刷新以将值存储在 sessionScope 中,并通过客户端 JavaScript 在 onComplete() 事件中(每次都会触发)或使用 view.postScript() 打开 XAgent 页面,将相关的 CSJS 作为字符串(只有在验证成功时才会触发)。

第二种是在beforePageLoad事件中设置上一页,然后在context.redirectToPage()中使用该值。

【讨论】:

  • 实际上,xagent 用于在加载表单后使用前端 javascript 进行内联查找。上一页是旧视图的 view.xsp。如果我做 redirectToPrevious 或如果我做 redirectToPage 我得到 2 个不同的结果。第一种方式给了我打开某些类别的视图。第二个给了我一个初始加载的视图,所有内容都折叠了。
  • 然后可能需要对代码进行更具体的重构,或者使用 pagerSaveState 和 viewStateBean.restoreState=true 来确保在原始页面上应用类别的展开/折叠状态。
猜你喜欢
  • 2010-09-18
  • 2016-01-23
  • 1970-01-01
  • 2015-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2019-03-19
相关资源
最近更新 更多