我有一个XPage,它使用document1.save()在SSJS中保存文档。在此之后,我调用一些Java代码来对文档和保存的新数据进行一些额外的处理;我将document1.getDocument()传递给Java函数。在Java函数中,它调用Document.save()来再次保存文档。这似乎是一个获得豁免冲突的方法,我不知道为什么。任何人都可以解释发生了什么吗? TIA! (除了理解为什么会发生这种情况,如果有人建议我更好地做我正在做的事情,我会很感激。)
里德
您可以在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);
}