我使用以下内容:
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
链接时,我得到了这个对话窗口:
工作正常。
我在会话超时到期后打开此页面时出现问题(或其他错误)。
首先,应用程序布局控件呈现实用程序链接列表,用于&#34;先前已登录&#34;用户(使用用户名和Logout
),然后立即刷新&#34;刷新&#34;本身包含匿名用户(Login
和Sign 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.timeout
和xsp.session.timeout
属性。
但看起来我没有影响力。
完整页面刷新后,我的对话框再次正常工作。
任何建议。
提前谢谢。
答案 0 :(得分:0)
设置viewState="nostate"
会使页面无状态,因此不会存储任何组件树。如果页面处于超时状态,对话框和部分刷新将失败,这是正确的行为。
增加超时可能会有效,但如果有人关闭了浏览器,那么服务器就不知道了,所以组件树将一直存储,直到超时结束。
Keep Session Alive组件可能会为您提供所需内容。但XPages仍然在HTTP之上运行。如果HTTP会话超时,则仍然存在问题。