XPages:通过SSJS和Java保存文档时出现文档冲突

时间:2016-07-19 15:48:30

标签: java xpages

我有一个XPage,它使用document1.save()在SSJS中保存文档。在此之后,我调用一些Java代码来对文档和保存的新数据进行一些额外的处理;我将document1.getDocument()传递给Java函数。在Java函数中,它调用Document.save()来再次保存文档。这似乎是一个拯救冲突的方法,我不知道为什么。谁能解释一下发生了什么? TIA! (除了理解为什么会这样,如果有人建议我更好地做我正在做的事情,我会很感激。)

里德

1 个答案:

答案 0 :(得分:1)

您可以在Java中使用“resolveVariable”来获取NotesXspDocument(在Java中称为DominoDocument)。然后,您可以使用Java而不是SSJS来保存DominoDocument对象。

如果您使用JSFUtil(可在许多XPage开源项目中找到)或使用您自己的帮助方法,则可以执行此操作以获取DominoDocument(将“currentDocument”替换为文档数据源的名称) :

DominoDocument uidoc = (DominoDocument) JSFUtil.resolveVariable("currentDocument");

resolveVariable方法如下所示:

public static Object resolveVariable(final String variable) {
    return FacesContext.getCurrentInstance().getApplication().getVariableResolver().resolveVariable(FacesContext.getCurrentInstance(), variable);
}