将 Xpage DominoDocument 绑定到 Bean
Binding a Xpage DominoDocument to a Bean
是否可以将 DominoDocument 直接绑定到托管 Bean。这样我就可以在我的 Bean 中有一个 属性,它始终持有对 DominoDocument 的引用?
感谢 suggestions/advices!
正如上面提到的,做你想做的最简单的方法不是将它绑定到你的 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生态系统,变量解析器知道如何处理,所以当你想访问它时,直接通过变量解析器是最简单的。
是否可以将 DominoDocument 直接绑定到托管 Bean。这样我就可以在我的 Bean 中有一个 属性,它始终持有对 DominoDocument 的引用?
感谢 suggestions/advices!
正如上面提到的,做你想做的最简单的方法不是将它绑定到你的 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生态系统,变量解析器知道如何处理,所以当你想访问它时,直接通过变量解析器是最简单的。