将Xpage DominoDocument绑定到Bean

时间:2016-11-16 15:22:45

标签: xpages managed-bean

是否可以将DominoDocument直接绑定到Managed Bean。所以我可以在我的Bean中有一个属性,它始终保存对DominoDocument的引用?

感谢任何建议/意见!

1 个答案:

答案 0 :(得分:3)

如上所述,执行所需操作的最简单方法是将其绑定到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属性,则可能会出现并发症,具体取决于应用程序运行的持久性模式的类型虽然我不确定,但可能没问题。 还有一个复杂的DataSource< - > DataContainer< - >变量解析器知道如何处理的DominoDocument生态系统,因此当你想要访问它时,最简单的就是通过变量解析器。