我想从 Xpages 将文档放入文件夹(共享,首次使用时私有)

I want to put a document into a folder (shared, private on first use) from Xpages

我有一个按钮。使用按钮,我想将当前文档放入一个私有文件夹中。我将 putinfolder 用于 Java。它对我很有用,但对其他人则不然。文件只在我的私人文件夹里,不在他们的文件夹里。 我该怎么做才能放入正确的文件夹?我如何在前端使用 JS 执行此操作? 非常感谢!

如果您使用 RPC 控件,您 可以 实际上使用客户端 JS 来执行此操作。您执行该操作的代码必须像 Paul 指出的那样位于后端代码中。但是您可以使用客户端 javascript 调用代码,这就是我认为您要问的。

  1. 首先在执行移动到文件夹的托管 bean 的 java 中编写一个 public 方法。听起来你知道该怎么做。您希望将 bean 绑定到 sessionScope。
  2. 接下来创建一个 RPC 控件,在设计模式中调用 "Remote Service"。给它一个 serviceName 这就是你将如何引用它。

  1. 创建一个将调用您的 java 方法的方法。如果您想选择将其放入哪个文件夹,也可以创建一个参数。您的代码将类似于以下内容。

    <xe:jsonRpcService id="jsonRpcService2" serviceName="yourRPC">
       <xe:this.methods>
        <xe:remoteMethod
            script="yourBean.putInFolder(folderName);">
            <xe:this.arguments>
                <xe:remoteMethodArg name="folderName"
                    type="string">
                </xe:remoteMethodArg>
            </xe:this.arguments>
        </xe:remoteMethod>
    </xe:this.methods></xe:jsonRpcService>
    
  2. 从客户端调用代码 java脚本。它看起来大致像这样:

    var folder = "Stuff"
    yourRPC.putInFolder(folder);
    

注意:正如评论中指出的那样。在您的 java 方法中,您需要编写它以使其在用户权限下运行,而不是您的权限。获取当前Session时,不要使用"sessionAsSigner".

我写了一些关于 RPC 的文章是这个博客 post: http://notesspeak.blogspot.com/2014/10/my-first-experience-using-json-rpc.html

真正了解 RPC 的工作原理,请阅读 Tim Tripcony 的这篇文章:http://www.notesin9.com/2014/05/21/tim-explains-json-rpc-codefortim/