2016-11-16 5 views
1

Возможно ли связать DominoDocument напрямую с управляемым компонентом. Чтобы я мог иметь свойство в моем Bean, которое постоянно ссылается на DominoDocument?Привязка Xpage DominoDocument к bean

Оцените любые предложения/советы!

+1

Для получения очень простого доступа вы можете использовать объект currentDocument с помощью метода переменной resolver (который можно найти в последней библиотеке расширений и в различных реализациях JSFUtil). –

+0

Хорошо, что, если у меня есть два источника данных? – MeMeMax

+1

Затем вы можете использовать свои имена источников данных вместо «currentDocument» –

ответ

3

Как указано выше, самый простой способ сделать то, что вы хотите, вместо того, чтобы привязывать его к свойству в вашем компоненте, просто получите доступ к нему, используя метод в вашем компоненте.

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, с которой распознаватель переменных знает, как с этим бороться, поэтому проще всего пройти через преобразователь переменных, когда вы хотите получить к нему доступ.