使用viewScope:这是一个问题还是设计

时间:2014-05-27 02:20:52

标签: xpages view-scope

我最近开发了一个XPage,它使用viewScope作为值,具有inputText控件。以下是使用的初始XPage名称:

xpNewOrderFax.xsp

,这显示了viewScope值:

viewScope values listed for xpNewOrderFax.xsp

现在当我切换到这个Xpage:

xpRequest.xsp

AccessNumber的viewScope值未按预期列出:

viewScope values listed for xpRequest.xsp

所以,现在你会认为,因为已经从viewScope映射中删除了AccessNumber的viewScope值,如果我返回到xpNewOrderFax.xsp页面,我将不得不重新输入我的值。但是,这不是发生的事情。 viewScope值再次列出,如下所示:

viewScope value for AccessNumber is listed

我的问题是这是一个问题还是设计问题,因为我理解在您离开当前XPage之前可以使用viewScope。我已经能够让一个同事复制这个问题,其中viewScope值在离开当前XPage时消失,并在返回XPage时重新出现。在第213页的XPage便携式命令指南中,听起来这是设计的,但是在第215页上听起来像是一个问题。 XPage属性页面上的应用程序或会话超时设置没有设置值。

希望有人能够澄清这一点,不仅仅是为了我,还有许多人使用这个研究机会。

根据Per:的要求进行更新 这是inputText控件的代码,我进行了搜索以确保我没有在其他地方执行viewScope.put(“AccessNumber”)或viewScope.get(“AccessNumber”)。

ccDuplicate Access Number

发现这个时我没有使用浏览器后退按钮。我使用下面的大纲条目,从一个页面导航到另一个页面,然后在OneUI布局中的选项卡,下面的属性设置,导航回来。

ccOutline_Admin OneUI Layout

1 个答案:

答案 0 :(得分:1)

我认为Mark的评论可能在正确的轨道上:如果你回到浏览器并继续使用旧页面,你可能会重新选择旧的页面实例。 viewScope绑定到页面名称的组合(例如" /xpNewOrderFax.xsp")和$$ viewid值(例如"!dsk58bqeqm!"),因此viewScope在用户离开页面后,服务器上存在一段时间,因为服务器不知道用户是否会回来。如果你访问另一个页面,然后在浏览器中返回到前一个页面,它可以恢复睡眠的ID键控页面实例,并选择它的位置,viewScope和所有。

如果您处于初始页面加载过度缓存并且甚至无法在新GET上从服务器重新获取新实例的环境中,我认为同样的情况也会发生,但是这将是一个网络/代理/浏览器问题,而不是Domino。