显示对话框控件时出现状态错误

时间:2016-07-29 21:31:11

标签: xpages state xpages-extlib

我使用以下内容:

Domino Release 9.0.1FP4HF71,
ExtensionLibrary v16, 
ApplicationLayout control with 'bootstrapResponsiveConfiguration',
theme: 'Bootstrap3.2.0_flat'

在应用程序布局控件的配置标记中,我有一个用于登录对话框窗口的basicLeafNode。

<xe:this.bannerUtilityLinks>
    <xe:basicLeafNode label="Login" submitValue="Login">
        <xe:this.onClick><![CDATA[XSP.openDialog("#{id:dialogLogin}");]]></xe:this.onClick>
    </xe:basicLeafNode>
</xe:this.bannerUtilityLinks>

这是带有loginDialog属性的标记:

<xe:dialog id="dialogLogin" title="Sign In" preventCache="true"
    preload="true" keepComponents="false" partialRefresh="true"
    extractContent="true">
    ...
</xe:dialog>

主要是当我点击Login链接时,我得到了这个对话窗口:

normal login dialog

工作正常。 我在会话超时到期后打开此页面时出现问题(或其他错误)。 首先,应用程序布局控件呈现实用程序链接列表,用于&#34;先前已登录&#34;用户(使用用户名和Logout),然后立即刷新&#34;刷新&#34;本身包含匿名用户(LoginSign up)的链接。

如果我现在点击Login,那么我将只获得一个带标题的空白对话框:

login dialog with empty content part

以及服务器控制台中的以下消息:

HTTP JVM: WARNING: CLFAD####W: State data not available for /index because no control tree was found in the cache.

我尝试使用不同的值更改了dialogLogin控件的属性,将页面的viewState属性更改为nostate并且增加了xsp.application.timeoutxsp.session.timeout属性。 但看起来我没有影响力。

完整页面刷新后,我的对话框再次正常工作。

任何建议。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

设置viewState="nostate"会使页面无状态,因此不会存储任何组件树。如果页面处于超时状态,对话框和部分刷新将失败,这是正确的行为。

增加超时可能会有效,但如果有人关闭了浏览器,那么服务器就不知道了,所以组件树将一直存储,直到超时结束。

Keep Session Alive组件可能会为您提供所需内容。但XPages仍然在HTTP之上运行。如果HTTP会话超时,则仍然存在问题。