Xpages 将Xpage DominoDocument绑定到Bean

Xpages 将Xpage DominoDocument绑定到Bean,xpages,managed-bean,Xpages,Managed Bean,是否可以将DominoDocument直接绑定到托管Bean。这样我就可以在我的Bean中拥有一个属性,该属性始终持有对DominoDocument的引用 感谢您的建议 如上所述,做您想做的事情的最简单方法不是将它绑定到bean中的属性,而是使用bean中的方法访问它 public DominoDocument getDominoDocument() { // Whatever the data source name is you want to get String doc

是否可以将DominoDocument直接绑定到托管Bean。这样我就可以在我的Bean中拥有一个属性,该属性始终持有对DominoDocument的引用


感谢您的建议

如上所述,做您想做的事情的最简单方法不是将它绑定到bean中的属性,而是使用bean中的方法访问它

public DominoDocument getDominoDocument() {

    // Whatever the data source name is you want to get
    String documentName = "document1";  

    Object o = ExtLibUtil.resolveVariable(FacesContext.getCurrentInstance(), documentName);

    // Double check that it is a DominoDocument
    if (o instanceof DominoDocument) {
        return (DominoDocument) o;
    }

    return null;

}
如果无法使用扩展库,请使用:

public DominoDocument getDominoDocument() {

    // Whatever the data source name is you want to get
    String documentName = "document1";  

    // Get the VariableResolver for Current FacesContext and Resolve the variable
    FacesContext facesContext = FacesContext.getCurrentInstance();
    VariableResolver resolver = facesContext.getApplication().getVariableResolver();
    Object o = resolver.resolveVariable(facesContext, documentName);

    // Double check that it is a DominoDocument
    if (o instanceof DominoDocument) {
        return (DominoDocument) o;
    }

    return null;

}
数据源在请求之间使用与托管bean的持久化稍有不同的机制进行持久化,所以如果将数据源绑定到托管bean属性,则可能会出现复杂情况,具体取决于应用程序运行的持久化模式。也许没关系,但我不确定。
此外,还有一个复杂的数据源数据容器DominoDocument生态系统,变量解析器知道如何处理该生态系统,因此,当您想要访问变量解析器时,只需通过变量解析器即可实现最简单的操作。

为了非常方便地访问,您可以通过变量解析器方法使用currentDocument对象(可以在最新的扩展库和JSFUtil的各种实现中找到)好的,如果我有两个数据源呢?然后可以使用它们的数据源名称而不是“currentDocument”我完全不明白你为什么想要DominoDocument。如果你想进入ManageBeans,那么页面应该直接与bean对话,或者更好的是通过pageController。然后bean或controller会根据需要使用后端文档进行读写。我看不到保存对DominoDocument的引用的良好用例从豆子里面。