View 在XPage open上设置会话范围

View 在XPage open上设置会话范围,view,xpages,session-scope,View,Xpages,Session Scope,我有一个Xpage,其中有一个视图,显示基于Xpage上6个字段的值的搜索结果(这些值在选择sessionscope变量时分配给它们,点击搜索按钮时驱动视图选择)。这一切都很好,但我想改变的是,当xpage最初打开时(在设置任何值之前),视图是空的 对于这个简单的问题我深表歉意,但我从2006年起就没碰过便笺,从那以后它也发生了相当大的变化 运行8.5.2.使用查看范围代替会话范围 viewScope在当前浏览器选项卡中的当前XPage期间存在变量。如果打开另一个XPage或在另一个选项卡中打开

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

对于这个简单的问题我深表歉意,但我从2006年起就没碰过便笺,从那以后它也发生了相当大的变化


运行8.5.2.

使用查看范围代替会话范围

viewScope在当前浏览器选项卡中的当前XPage期间存在变量。如果打开另一个XPage或在另一个选项卡中打开当前XPage,则viewScope变量的值将消失。这就是你需要的


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

当范围被“启动”时,每个bean都被实例化。对于sessionScope,请在首次打开网站时查看此内容。对于viewScope,它是您第一次打开页面时(将保留部分刷新)。这些范围内的变量只是该范围内的映射(即bean)

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

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

还有一个关于示波器的词。如果可能的话,出于性能/可伸缩性的目的,您应该始终选择“较短”的时间范围。请参阅:-)中有关使用sessionScope的更多信息


/John

请尽量更具体地说明搜索类型(全文?键值?)。还显示了一些示例代码,特别是关于搜索过滤器的代码。我一直在遵循这个示例(),所以是全文搜索。我在想我是不是问错了问题。是否有一种方法可以在打开xpage时设置sessionscop(或查看范围,感谢Knut)(不管你在页面中做了什么?)。如果您认为仍然需要,我会尽快发布代码(我现在手头没有)。谢谢