【问题标题】:xpages should I use ignorerequestParams set to truexpages 我应该使用设置为 true 的 ignorerequestParams
【发布时间】:2014-07-16 05:51:04
【问题描述】:

基于这些问题:

xpages UNID of documents / why it is changing

xpages why my field value isn't copied correctly

我注意到,不幸的是,如果我点击刷新/F5,一些存储 UNID 的计算字段会发生变化。

我的 XPage 定义了一个数据源 (Cdoc),它包含一个显示对话框的按钮。此对话框已定义其他数据源 (Pdoc)。该对话框包含几个字段,这些字段从Cdoc...继承了一些值...

我应该为这些数据源之一使用ignorerequestParams 属性吗?你能解释一下这个属性的含义吗?

会发生什么:

在我显示对话框并创建一些Pdoc并将其列在XPage(Cdoc数据源)内的viewPanel中之后存储Cdoc的UNID的字段,然后点击F5@ 987654332@ 正在改变……即使它是计算出来的。

另外,如果文档。 isNewNote() 网址是这样的:

server/Test.nsf/doc.xsp?action=newDocument 

即使在我致电Cdoc.save() 之后。我认为这可能是当我点击刷新时存储 UNID 的 computedField 发生变化的原因 => 创建了一个 newDoc。

同时,我将ignoreRequestParams 设置为true 仅用于对话框(Pdoc)。

感谢您的宝贵时间!

【问题讨论】:

    标签: xpages


    【解决方案1】:

    默认情况下,UNID 和操作(打开、创建、编辑)由 URL 查询字符串(即请求参数)定义。使用 requestParamPrefix,您可以定义查询字符串中的哪个条目用于查找 this 数据源的文档参数。默认情况下是 documentId。但是如果你想通过代码自己管理UNID和action,那就需要设置ignoreRequestParams="true"。

    如果您在一个页面上有两个数据源,则需要在其中一个上使用 ignoreRequestParams 或 requestParamPrefix。如果不是,您正在两个数据源中编辑同一个文档。

    【讨论】:

    • 所以可以只为对话框放置 ignoreRequestParams="true" 吗?我在一个页面上没有两个数据源。
    • 我不认为我理解你的答案(我的错,我是 XPages 开发的新手),这就是我将我的场景放在问题中的原因,考虑到我在理解一些一般概念时遇到了一些困难。
    • @MFGFlay 这很容易,事实上:默认情况下,URL 中的请求参数“覆盖”数据源的未定义属性。属性 ignoreRequestParams 为该数据源完全关闭此行为。属性 requestParamPrefix 将“监听” URL 中不同的前缀参数。
    • 您说您有两个数据源,CDoc 和 PDoc。这些是试图成为两个不同的 Notes 文档还是相同的 Notes 文档。听起来像后者。
    • @PaulStephenWithers :Cdoc 和 Pdoc 试图充当两个不同的文档。 Cdoc 还有一个视图面板,其中列出了所有 Pdoc 文档。 Pdocs 是通过显示一个对话框从 Cdoc / xpages 创建的(对话框本身就是 Pdoc)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2011-02-19
    • 2019-09-17
    相关资源
    最近更新 更多