Xpages “扩展库”对话框刷新/缓存问题?

Xpages “扩展库”对话框刷新/缓存问题?,xpages,Xpages,我似乎对extensions library对话框没有刷新或缓存值有问题 请参见下面非常简化的示例。基本上,该按钮会弹出一个扩展库对话框。对话框中包含一个计算字段,其值为@Unique()。在我们的prod服务器上,当按下按钮时,号码不会被更新。它在第一次按下按钮时起作用,但随后的按下不会更新数字 这只发生在生产中,类似的问题在过去几周才开始出现。它在我们的开发和QA服务器上仍然可以正常工作 我的管理员联系人现在不在,所以我不知道服务器之间的版本差异,但当我了解到这些信息时,我会发布它们 代码如

我似乎对extensions library对话框没有刷新或缓存值有问题

请参见下面非常简化的示例。基本上,该按钮会弹出一个扩展库对话框。对话框中包含一个计算字段,其值为@Unique()。在我们的prod服务器上,当按下按钮时,号码不会被更新。它在第一次按下按钮时起作用,但随后的按下不会更新数字

这只发生在生产中,类似的问题在过去几周才开始出现。它在我们的开发和QA服务器上仍然可以正常工作

我的管理员联系人现在不在,所以我不知道服务器之间的版本差异,但当我了解到这些信息时,我会发布它们

代码如下:

<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.resources>
    <xp:script src="/Validation_SSJS.jss" clientSide="false"></xp:script>
</xp:this.resources>


<xp:br></xp:br>

<xp:br></xp:br>
<xe:dialog id="dlgMsg2" title="Message" style="width:400px;">

   <xp:text escape="true" id="computedField1" value="#{javascript:return @Unique();}">
        </xp:text>


</xe:dialog><xp:br></xp:br>
<xp:br></xp:br>



<xp:br></xp:br>
<xp:button value="Popup Message" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:var dlg =      getComponent("dlgMsg2");
dlg.show();}]]></xp:this.action>
    </xp:eventHandler></xp:button>
</xp:view>

更新:这个问题在IE和Firefox中都有发生,所以看起来与浏览器无关。我猜这与Pistolstar也没有关系,因为我之前有一个关于PS和Xpages的问题。Pistolstar发现了这个问题,当我得到更多细节时,我会更新我以前的帖子


更新:我检查了,我们的QA和Prod服务器的扩展库版本为8.5.3.20111208-0717。

在对话框的“所有属性”部分有一个名为“RefreshOnShow”的属性


当设置为true时,每当面板从隐藏状态变为可见状态时,面板的内容都将刷新。这应该可以解决您看到的问题。

这可能不太可能,但是xsp.properties中的页面持久性选项可能会改变页面在不同环境中的行为方式。数据库和服务器上都有xsp.properties。XPages Portable Command Guide提供了有关不同设置的更多详细信息,但设置可能会更改请求之间保留的内容。

我想出了一个“解决方法”来解决此问题。我为对话框的onShow事件添加了一个刷新事件处理程序

<xe:dialog id="dlgMsg2" title="Message" style="width:400px;">
        <xp:text escape="true" id="computedField1" value="#{javascript:return @Unique();}">
        </xp:text>


    <xp:eventHandler event="onShow" submit="true"
        refreshMode="partial" refreshId="computedField1">
    </xp:eventHandler></xe:dialog>


了解潜在问题仍然很有趣。

这听起来很有希望,但并没有解决问题。无论如何,我可以使用SSJS作为解决方法来部分刷新对话框内容?还有一个“KeepContents”属性可以设置为false。也许这两个属性组合在一起就可以了。遗憾的是,没有。还有一个preventCache,我尝试将其设置为true,但也不起作用。我们的QA服务器和prod服务器之间一定存在差异。您知道要在服务器上检查哪些属性吗?