如何从Java Bean获取DataSource(document1)的句柄

xpa*_*ast 1 java datasource xpages

如何从Java Bean获取XPage上的DataSource句柄并调用其Save()方法?

默认变量(ID)是'document1'.

在ServerSide JavaScript中,它是一个变量document1.save(); //很简单

但是,在JSF中,我认为我必须使用组件树facesContext来获取它的句柄.

思考?

Eri*_*ick 6

document1"NotesXspDocument"(在Domino的SSJS中)的句柄,特定的Java类是com.ibm.xsp.model.domino.wrapped.DominoDocument.获取这样定义的句柄的最简单方法是在document1不通过参数向方法传递引用句柄的情况下解析变量.

您可以使用扩展库的ExtLibUtil方法resolveVariable(String name),在9.0.1_v15之前,这需要FacesContext实例的第二个参数; resolveVariable(FacesContext ctx, String name).

或者,您可以ExtLibUtil完全跳过,虽然我更喜欢它并定期使用它,具有以下内容:

DominoDocument myDoc = (DominoDocument) FacesContext.getCurrentInstance()
    .getApplication().getVariableResolver()
    .resolveVariable(FacesContext.getCurrentInstance(), "document1");
Run Code Online (Sandbox Code Playgroud)

从我们通过用户FacesContext实例解析变量这一事实可以看出,实际上document1必须存在/可供给定FacesContext实例访问才能使其工作.的ExtLibUtil方法(或多个)都是包装到FacesContext变量解析器.