gpt4 book ai didi

java - XPage:(再次)丢失 viewScoped bean

转载 作者:行者123 更新时间:2023-11-30 07:56:19 25 4
gpt4 key购买 nike

我们有一个包含一些 Accordion 的页面。有些 Accordion 一开始是空的,当用户通过部分更新单击 Accordion 栏时,它们就会被填充。一开始,这工作正常,但如果用户在稍后阶段打开 Accordion ,它就不起作用。

当用户关闭 Accordion ,切换到同一 nsf 中的不同页面,在那里执行很多操作,然后返回到第一页时,就会发生这种情况。不知何故,与部分刷新相关的代码没有被执行。

这是一些代码:

<xe:djAccordionPane id="djAccordionPane3">
<xp:div id="outerPanelModels">
<xc:ccModelView>
<xc:this.rendered><![CDATA[#{javascript:UserData.getVar("ShowModels")}]]></xc:this.rendered>
</xc:ccModelView>
</xp:div>
<xe:this.dojoAttributes>
<xp:dojoAttribute name="Title" value="#{javascript:constants.Models}"></xp:dojoAttribute>
</xe:this.dojoAttributes>
<xp:eventHandler event="onShow" submit="true" refreshMode="partial"
refreshId="outerPanelModels">
<xp:this.onComplete><![CDATA[hideAjaxLoader();]]></xp:this.onComplete>
<xe:this.script><![CDATA[if(document.getElementById("#{id:outerPanelModels}").childElementCount==0) {
showAjaxLoader();
return true
}
return false;]]></xe:this.script>
<xe:this.action><![CDATA[#{javascript:UserData.putVar("ShowModels", true)}]]></xe:this.action>
</xp:eventHandler>
</xe:djAccordionPane>

UserData 是一个 sessionScope bean。 putVar 和 getVar 曾经位于 viewScope bean 中,我怀疑该 bean 会以某种方式被破坏(实际上是这样),所以我将代码移至 sessionScope。

为什么底部的代码行,即 UserData.putVar("ShowModels", true) 行没有被执行?有什么线索吗?也许有一个解决方案?

谢谢!

更新应用程序设置为将所有页面保留在内存中。

xsp.属性:

xsp.error.page=xError.xsp
xsp.library.depends=com.ibm.xsp.extlib.library
xsp.min.version=8.5.3
xsp.persistence.mode=basic
xsp.resources.aggregate=false
xsp.theme.web=extendOneUI.theme

xsp.openlog.expireDate=15

xsp.error.page=Error.xsp
xsp.persistence.viewstate=fullstate
# org.openntf.domino.xsp=godmode,marcel,bubbleExceptions
xsp.application.forcefullrefresh=true
xsp.error.page.default=true
xsp.session.timeout=180
xsp.application.timeout=180

最佳答案

查看 xsp.properties,特别是要保留在内存中和磁盘上的页数的持久性属性。还有默认设置。

一旦存储了一定数量的组件树,如果您尝试存储另一个组件树,最早的组件树将被转储。在您描述的场景中,听起来像是使用折叠容器转储页面的组件树,这也将转储 UserData viewScoped 变量。

没有 Elixir 的答案,这取决于您的应用程序以及用户与其交互的方式。它还取决于您是将所有页面保留在内存中、全部保留在磁盘上还是混合保留。基本上,如果您允许用户在浏览器中打开同一 NSF 的其他选项卡,除非您可以保持该页面的组件树可用,否则存在组件树丢失的风险,因为服务器端无法知道它是仍在浏览器中打开。

关于java - XPage:(再次)丢失 viewScoped bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32628012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com