Возможно ли связать DominoDocument напрямую с управляемым компонентом. Чтобы я мог иметь свойство в моем Bean, которое постоянно ссылается на DominoDocument?Привязка Xpage DominoDocument к bean
Оцените любые предложения/советы!
Возможно ли связать DominoDocument напрямую с управляемым компонентом. Чтобы я мог иметь свойство в моем Bean, которое постоянно ссылается на DominoDocument?Привязка Xpage DominoDocument к 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;
}
Источники данных, сохраняются между запросами, используя несколько иной механизм для сохранения управляемых компонентов, так что если вы связываете данные Источник для свойства управляемого компонента, возможно, могут возникнуть сложности в зависимости от того, какой режим сохранения работает в приложении. Возможно, все в порядке, хотя я не уверен. Также существует сложная DataSource < -> DataContainer < -> экосистема DominoDocument, с которой распознаватель переменных знает, как с этим бороться, поэтому проще всего пройти через преобразователь переменных, когда вы хотите получить к нему доступ.
Для получения очень простого доступа вы можете использовать объект currentDocument с помощью метода переменной resolver (который можно найти в последней библиотеке расширений и в различных реализациях JSFUtil). –
Хорошо, что, если у меня есть два источника данных? – MeMeMax
Затем вы можете использовать свои имена источников данных вместо «currentDocument» –