我有一个带有视图的Xpage,它显示基于xpage上6个字段值的搜索结果(这些值在选择时分配给sessionscope变量,当搜索按钮为时,它会驱动视图选择击中)。这一切都运行良好,但我想改变的是,最初打开xpage(在设置任何值之前)视图为空。
为这个简单的问题道歉,但自2006年以来我没有触及过笔记,从那时起它发生了一些变化。
运行8.5.2。
答案 0 :(得分:1)
当范围“启动”时,每个bean都会被实例化。对于sessionScope,当您第一次打开该站点时。对于viewScope,它是您第一次打开页面时(将在部分刷新后存活)。这些范围中的变量只是该范围内的映射(即bean)。
因此,要设置初始值,您可以使用真正的bean - 只需在构造函数中添加所需的代码。
或者,如果您想使用SSJS,可以在加载页面时添加检查(例如在beforePageLoad事件中)。如果你在sessionScope中工作,你应该检查一个值是否已经设置 - 如果没有 - >设置它。在viewScope中,您只需启动变量。
关于范围的一句话。如果可能的话,您应该总是更喜欢“更短”的定时范围,以实现性能/可伸缩性。请参阅my article about tuning XPages中有关使用sessionScope的更多信息: - )
/约翰
答案 1 :(得分:0)
使用 viewScope 代替sessionScope。
在当前浏览器选项卡中,当前XPage的持续时间内存在viewScope 变量。如果在另一个选项卡中打开另一个XPage或打开当前XPage,则viewScope变量的值将消失。这就是你需要的。
sessionScope 变量在所有浏览器标签中的浏览器中持续用户会话的持续时间。这就是为什么您当前的搜索值在另一个浏览器选项卡中设置为默认值。